Ken Auer在他的《 Extreme Programming Applied》一书中偶然提到了Enabler模式。肯特·贝克(Kent Beck)也提到了它(至少在日期为2004年11月8日的电子邮件中),但我无法在通常的地方(Google,c2.com上的wiki等)找到任何详细信息。

在哪里可以找到更多?

最佳答案

启动器模式实际上只是观察者模式的一种变体。您可以在系统的有趣部分上设置观察者,从而创建条件。然后,启动器可以观察条件并启用/禁用窗口小部件。

例如。加载Window时,将创建条件来监视诸如列表或组合框(或列表或组合框下方的模型)是否已选择内容之类的内容。您可以将其称为“somethingSelectedCondition”。然后,您将启动器连接到与一个或多个条件相关联的小部件(您可以将它们和/或在一起……尽管通常在实践中您只想将它​​们和在一起)。

我通常通过拥有一个小部件工厂来实现它们,以便您传入的参数之一是一组命名条件,当与它们在一起时,它们将启用/禁用小部件。例如。

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

conditionNames将查找某种HashMap中可用的Condition,创建一个CompositeCondition(将所有观察到的条件 bool 值与AND结合),并创建一个启动器,该启动器监听CompositeCondition并告诉创建的小部件启用/禁用根据基础条件。

听起来有些复杂,但是一旦创建了基础基础架构,就需要几行代码来连接您的条件,然后用户界面始终与条件保持同步。

我认为我从未正式编写启动器模式,或者只是将您指向一个URL。

HTH,

关于design-patterns - 在哪里可以找到Ken Auer推广的启动器模式的更多详细信息?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1100160/

10-11 12:19