шаблон проектирования для обработки отображения конкретной версии для пользователя - PullRequest
0 голосов
/ 08 июня 2011

Я искал этот паттерн в течение некоторого времени, но все еще не получил очень хороший способ представить это.

Рассмотрим дизайн графического интерфейса, который должен показывать атрибуты объекта в зависимости от версии, эти версии указывают, какие атрибуты имеют смысл для клиента. (скажем, у клиента есть сведения о поддерживаемых версиях)

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

Для вышеуказанного условия есть ли шаблон, который определяет, как представлять классы?

В настоящее время у нас есть проверка наличия версий для них, но она выходит из-под контроля, поэтому я ищу решение, которое позволило бы нам делиться общим кодом, а также отделять код для конкретной версии, чтобы мы могли может поддерживать это. И изменения в версии локализованы.

Ответы [ 2 ]

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

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

Например, если класс A, вы должны использовать CommonA и A_1 содержать объект CommonA, а A_2 также содержать объект CommonA. Здесь A_1 и A_2 представляют версию 1 и версию 2.

И A_1, и A_2 предоставляют одни и те же методы и внутренне делегируют разделяемому классу.

Таким образом, вы не дублируете и локализуете материал, относящийся к вашей версии, внутри каждого из A_1, A_2 и т. Д.

0 голосов
/ 08 июня 2011

Возможно, вы ищете отложенное связывание: http://code.google.com/webtoolkit/doc/latest/DevGuideCodingBasicsDeferred.html. С отложенным связыванием вы можете заменить свой класс клиентским. Или вы можете заменить свой Ginjector, чтобы вы могли организовать замену там, а не в своем файле gwt.xml.

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