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