Государственный шаблон проектирования Пользовательский интерфейс - PullRequest
5 голосов
/ 01 июня 2011

Я изучаю государственный шаблон проектирования.Я использую C # ASP.Net (не уверен, что язык актуален).

По сути, мой объект имеет состояния A, B и C, а также действия по перемещению его между различными состояниями: ActionAToB, ActionBtoA и ActionAtoC.

Что я пытаюсьчтобы сделать, это привязать этот объект к экрану, и чтобы кнопки вызывали эти действия, но проблема в следующем: как показать кнопки, относящиеся только к состоянию, в котором находится объект, и показать / скрыть кнопки, когда состояние изменяется?

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

1 Ответ

1 голос
/ 01 июня 2011

Используйте шаблон наблюдателя, а также шаблон состояния.Пусть ваш класс Form (или то, что вы используете для своего пользовательского интерфейса) будет наблюдателем, который наблюдает за вашими объектами ABC.Когда эти объекты изменяют свое состояние, они уведомляют представление, и она обновляет себя соответствующим образом, скрывая соответствующие кнопки.Я написал об этом в блоге, см. Здесь: Блог Progomate Algo

Не пугайтесь, если вы видите испанский, и мой блог, и я на двух языках:)

Редактировать: Если вы хотите, чтобы ваш пользовательский интерфейс был проще в обслуживании, вы должны также изучить шаблон для разделения View и Model.Их много, некоторые MVC, MVP и MVMM.

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