Шаблон для конфигурации пользовательского интерфейса - PullRequest
2 голосов
/ 14 апреля 2010

У меня есть программа 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

Мне это не нравится, потому что он дублирует код и заставляет меня обновить несколько методов, если что-то меняется в пользовательском интерфейсе.

Мне интересно, существует ли шаблон проектирования или передовая практика для устранения дублирования и облегчения понимания и обновления функциональности.

Я мог бы объединить код внутри функции конфигурации и передать флаги для включения / отключения элементов пользовательского интерфейса, но я не уверен, что это лучший подход.

Есть предложения и идеи?

1 Ответ

1 голос
/ 14 апреля 2010

Я бы порекомендовал Шаблон наблюдателя и Шаблон состояния, когда проверка оказывается успешной или неудачной, прикрепленные кнопки могут изменять свое состояние в соответствии с информацией, предоставленной в методе «уведомлять». Пожалуйста, обратитесь к книге GoF для получения дополнительной информации, или просто Google. Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...