Thực hiện sơ đồ nhà nước
Một sơ đồ nhà nước có thể được thực hiện theo ba cách chính: switch lồng nhau, các mô hình nhà nước, và bảng trạng thái. Phương pháp trực tiếp nhất để xử lý tình trạng một
hình 10.5 sơ đồ trạng thái trực giao đồng thời là một câu lệnh switch lồng nhau, chẳng hạn như hình 10.6. Mặc dù đó là trực tiếp, nó dài dòng, ngay cả đối với trường hợp đơn giản này. Nó cũng rất dễ dàng cho phương pháp này để có được ra khỏi kiểm soát, vì vậy tôi không muốn sử dụng nó ngay cả đối với các trường hợp đơn giản.
Các mô hình nhà nước [Gang of Four] tạo ra một hệ thống phân cấp của các lớp học nhà nước để xử lý các hành vi của các tiểu bang. Mỗi bang trong sơ đồ có một lớp con của nhà nước. Bộ điều khiển có các phương thức cho mỗi sự kiện, mà chỉ đơn giản chuyển tiếp đến các lớp học nhà nước. Sơ đồ trạng thái của Hình 10.1 sẽ mang lại một thực hiện chỉ định bởi các loại hình 10.7.
Các cấp trên cùng là một lớp trừu tượng mà thực hiện tất cả các phương pháp xử lý event- để làm gì cả. Đối với mỗi quốc gia cụ thể, bạn chỉ cần ghi đè các phương pháp sự kiện cụ thể mà nhà nước có chuyển tiếp.
Phương pháp bảng trạng thái nắm bắt được những thông tin sơ đồ trạng thái như dữ liệu. Vì vậy, hình 10.1 có thể kết thúc được đại diện trong một bảng như bảng 10.1. Sau đó chúng tôi xây dựng hoặc một thông dịch viên có sử dụng bảng nhà nước trong thời gian chạy hoặc một bộ tạo mã để tạo ra các lớp học dựa trên bảng trạng thái.
Rõ ràng, bảng nhà nước là nhiều việc phải làm một lần, nhưng sau đó bạn có thể sử dụng nó mỗi khi bạn có một nhà nước vấn đề để giữ. Một bảng trạng thái thời gian chạy cũng có thể là
public void handleEvent (PanelEvent anEvent) {switch (CurrentState) {case Chỉnh State.Open: switch (anEvertt) {case Chỉnh Event.SafeClosed: CurrentState = Chỉnh State.Wait; phá vỡ;
đang được dịch, vui lòng đợi..
