У меня есть программа Win32 C ++, которая проверяет пользовательский ввод и обновляет пользовательский интерфейс с информацией о состоянии и опциями. В настоящее время написано так:
void ShowError() {
SetIcon(kError);
SetMessageString("There was an error");
HideButton(kButton1);
HideButton(kButton2);
ShowButton(kButton3);
}
void ShowSuccess() {
SetIcon(kError);
std::String statusText (GetStatusText());
SetMessageString(statusText);
HideButton(kButton1);
HideButton(kButton2);
ShowButton(kButton3);
}
// plus several more methods to update the UI using similar mechanisms
Мне это не нравится, потому что он дублирует код и заставляет меня обновить несколько методов, если что-то меняется в пользовательском интерфейсе.
Мне интересно, существует ли шаблон проектирования или передовая практика для устранения дублирования и облегчения понимания и обновления функциональности.
Я мог бы объединить код внутри функции конфигурации и передать флаги для включения / отключения элементов пользовательского интерфейса, но я не уверен, что это лучший подход.
Есть предложения и идеи?