Для реализации графического интерфейса приложения я бы хотел, чтобы вся логика переходила из одной формы в другую централизованно. Этот менеджер 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 поддерживает это как-то? Если нет, это звучит как хорошая идея реализации? Спасибо!