Nên

Khi hệ thống có số trạng thái rõ ràng và hữu hạn

  • UI có trạng thái như: idle loading success / error
  • Xử lý đơn hàng: created paid shipped delivered canceled
  • Game, nhân vật idle running jumping attacking

Khi muốn trành spaghetti code trong các điều kiện if/else lồng nhau. Khi cần kiểm soát luồng xử lý phức tạp Khi làm việc với thiết bị, hệ thống nhúng, hoặc automation Khi làm workflow nghiệp vụ.

Không nên

Khi luồng xử lý quá đơn giản. Khi trạng thái thay đổi liên tục không xác định rõ ràng. Khi nghiệp vụ thường xuyên thay đổi Khi cần tính linh hoạt cao