为了实现应用程序的 GUI,我希望将所有逻辑从一种形式集中到另一种形式。该 GUI 管理器将充当有限状态机。虽然我想我在某处见过这种实现,但我找不到与这种解决方案相匹配的设计模式。
表单将如下所示:
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));
}
...
}
GUI 管理器将执行以下操作:
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();
}
...
}
}
...
}
达到这一点我有以下问题:是否有一种设计模式可以形式化这个想法?如果有,.NET 是否以某种方式支持它?如果没有,这听起来是一个很好的实现想法吗?谢谢!
最佳答案
State design pattern描述如何实现有限状态机。
有许多略有不同的设计模式来控制 UI 中的屏幕,但我认为 Application Controller design pattern适合您想要做的事情。
关于.net - GUI 作为有限状态机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1624516/