Где я могу найти более подробную информацию о шаблоне Enabler, популяризированном Кеном Ауэром?

StackOverflow https://stackoverflow.com/questions/1100160

Вопрос

В своей книге Применяемое Экстремальное программирование, Кен Ауэр вскользь упоминает шаблон стимулирования.Кент Бек также упоминает об этом (по крайней мере, в электронном письме от 08 ноября 2004 года), но я не смог найти никаких подробностей в обычных местах (Google, wiki по адресу c2.com и т.д.)

Где я могу узнать больше?

Это было полезно?

Решение

Шаблон Enabler на самом деле является всего лишь вариацией шаблона Observer.Вы размещаете наблюдателей на интересных участках системы, создавая Условия.Затем пользователи могут соблюдать условия и включать / отключать виджеты.

Например.когда вы загружаете окно, вы создаете условия, которые отслеживают, например, выбрано ли что-то в списке или поле со списком (или в модели под списком или полем со списком).Вы можете назвать это чем-то вроде "somethingSelectedCondition".Затем вы подключаете вспомогательные средства к виджетам, привязанным к одному или нескольким условиям (которые вы можете выполнять и / или вместе)...хотя обычно вы просто хотите совместить их на практике).

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

WidgetFactory.createButton(Строка buttonLabel, Строка methodActionName, Строка[] conditionname)

Conditionname будет искать условия, доступные в какой-либо хэш-карте, создавать CompositeCondition (которое содержит все наблюдаемые логические значения условий) и создает средство поддержки, которое прослушивает CompositeCondition и сообщает созданному виджету включить / отключить на основе базового условия.

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

Я не думаю, что я когда-либо официально писал шаблон Enabler, иначе я бы просто указал вам на URL.

HTH,

Кен

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top