Question

Dans son livre Extreme Programming appliquée , Ken Auer mentionne négligemment un modèle Enabler. Kent Beck mentionne également (à tout le moins dans un courriel daté du 08 Novembre, 2004), mais je n'ai pas pu trouver tous les détails dans les endroits habituels (Google, le wiki à c2.com, etc.)

Où puis-je en savoir plus?

Était-ce utile?

La solution

Le modèle Enabler est vraiment juste une variation d'un modèle d'observateur. Vous mettez en place des observateurs sur les parties intéressantes d'un système, la création de conditions. Enablers peut alors observer les conditions et activer / désactiver les widgets.

par exemple. lorsque vous chargez une fenêtre, vous créer des conditions qui regardent des choses comme si une zone de liste ou combo (ou un modèle sous la liste ou combo-box) a quelque chose sélectionné. Vous pouvez l'appeler quelque chose comme « somethingSelectedCondition ». Vous pouvez ensuite brancher habilitants aux widgets qui sont liés à une ou plusieurs conditions (que vous pouvez et / ou ensemble ... mais en général vous voulez juste et ensemble dans la pratique).

Je les mettre en œuvre habituellement en ayant une usine widget de telle sorte que l'un des paramètres que vous passez dans est un tableau de conditions nommées, lorsque anded ensemble, activer / désactiver un widget. Par exemple.

widgetFactory.createButton (String BUTTONLABEL, String methodActionName, String [] conditionNames)

Les conditionNames recherchera les conditions qui sont disponibles dans une certaine sorte de HashMap, CREAT un CompositeCondition (qui ANDs toutes les valeurs booléennes observées des conditions) et crée une Enabler qui écoute la CompositeCondition et indique le créé widget à activer / désactiver la fonction de la condition sous-jacente.

Il semble un peu compliqué, mais une fois que vous créez l'infrastructure sous-jacente, deux lignes de fil de code vos conditions, puis l'interface utilisateur est toujours en phase avec les conditions.

Je ne pense pas que j'ai jamais écrit officiellement le modèle Enabler, ou je vous signale simplement une URL.

HTH,

Ken

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top