在他的书极限编程应用中,Ken Auer随便提到了一个启动器模式。肯特贝克也提到它(至少在2004年11月8日的电子邮件中),但我无法在通常的地方找到任何细节(谷歌,在c2.com的维基等)
我在哪里可以找到更多信息?
答案 0 :(得分:5)
启动器模式实际上只是观察者模式的变体。您在系统的有趣部分上设置观察者,创建条件。然后,启动器可以观察条件并启用/禁用小部件。
E.g。当你加载一个Window时,你创建条件来监视列表或组合框(或列表或组合框下面的模型)是否选择了某些内容。你可以称之为“somethingSelectedCondition”。然后,您将启动器连接到与一个或多个条件相关联的小部件(您可以和/或在一起......虽然通常您只是想在实践中将它们放在一起)。
我通常通过创建一个小部件工厂来实现它们,这样您传入的参数之一就是一个命名条件数组,当它们结合在一起时,启用/禁用小部件。 E.g。
widgetFactory.createButton(String buttonLabel,String methodActionName,String [] conditionNames)
conditionNames将查找某种HashMap中可用的条件,创建一个CompositeCondition(对条件的所有观察到的布尔值进行AND运算)并创建一个启动器,它监听CompositeCondition并告诉创建的小部件根据基础条件启用/禁用。
这听起来有点复杂,但是一旦您创建了底层基础架构,几行代码就会连接您的条件,然后用户界面始终与条件同步。
我认为我没有正式写过启动器模式,或者我只是指向一个URL。
HTH,
肯