Để triển khai GUI của ứng dụng, tôi muốn có tất cả logic để chuyển từ một dạng này sang dạng khác tập trung. Trình quản lý GUI này sẽ hoạt động như một máy trạng thái hữu hạn. Mặc dù tôi nghĩ rằng tôi đã thấy loại triển khai này ở đâu đó, tôi không thể tìm thấy một mẫu thiết kế phù hợp với loại giải pháp này.GUI là một máy trạng thái hữu hạn
Một biểu mẫu sẽ trông như thế này:
public class Login : Form
{
...
private void EnterButton_Click()
{
...
string user = loginTextBox.Text;
string password = passwordTextBox.Text;
bool isValid = SecurityManager.CheckUserLogin(user,password);
GUIManager.FormEnd(FormLogin,new LoginData(user, pass, isValid));
}
...
}
Và người quản lý GUI sẽ làm điều gì đó như thế này:
public class GUIManager
{
...
public void FormEnd(FormType type, FormData data)
{
switch (type)
{
...
case FormLogin:
LoginData ld = (LoginData)data;
if (ld.Valid)
{
m_loginForm.Hide();
m_mainForm.Show();
}
...
}
}
...
}
Tiếp cận thời điểm này tôi có các câu hỏi sau: là có một mô hình desing rằng chính thức hóa ý tưởng này? Nếu có, .NET có hỗ trợ nó không? Nếu không có, nó có âm thanh như một ý tưởng thực hiện tốt? Cảm ơn!
+1 FSM cho GUI là một ý tưởng rất hay! Có lẽ bạn có thể tạo một DSL dựa trên XML cho mục đích này ... – ATorras
Thực ra đó là một ý tưởng hay, và tôi mệt mỏi vì điều hướng biển infoclutter của Microsoft. Một loạt quảng cáo tiếp thị trên liên kết từ Travis. Nhưng khi tôi đọc chi tiết, tôi không thấy bất kỳ khái niệm tuyệt vời nào. Chỉ là một chiếc xe cũ. Tôi khuyên bạn nên làm theo ý tưởng của bạn và cố gắng giữ cho dữ liệu được điều khiển. Sau khi tất cả đó là cách hầu hết các máy nhà nước trông như thế nào. –