我在哪里可以找到Ken Auer推广的启动器模式的更多细节?

时间:2009-07-08 19:44:17

标签: design-patterns extreme-programming

在他的书极限编程应用中,Ken Auer随便提到了一个启动器模式。肯特贝克也提到它(至少在2004年11月8日的电子邮件中),但我无法在通常的地方找到任何细节(谷歌,在c2.com的维基等)

我在哪里可以找到更多信息?

1 个答案:

答案 0 :(得分:5)

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

E.g。当你加载一个Window时,你创建条件来监视列表或组合框(或列表或组合框下面的模型)是否选择了某些内容。你可以称之为“somethingSelectedCondition”。然后,您将启动器连接到与一个或多个条件相关联的小部件(您可以和/或在一起......虽然通常您只是想在实践中将它们放在一起)。

我通常通过创建一个小部件工厂来实现它们,这样您传入的参数之一就是一个命名条件数组,当它们结合在一起时,启用/禁用小部件。 E.g。

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

conditionNames将查找某种HashMap中可用的条件,创建一个CompositeCondition(对条件的所有观察到的布尔值进行AND运算)并创建一个启动器,它监听CompositeCondition并告诉创建的小部件根据基础条件启用/禁用。

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

我认为我没有正式写过启动器模式,或者我只是指向一个URL。

HTH,