Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 在哪里可以找到Ken Auer推广的启用码模式的更多详细信息?_Design Patterns_Extreme Programming - Fatal编程技术网

Design patterns 在哪里可以找到Ken Auer推广的启用码模式的更多详细信息?

Design patterns 在哪里可以找到Ken Auer推广的启用码模式的更多详细信息?,design-patterns,extreme-programming,Design Patterns,Extreme Programming,在《极限编程应用》一书中,肯·奥尔(Ken Auer)随意提到了一种启用码模式。肯特·贝克(Kent Beck)也提到了这一点(至少在2004年11月8日的一封电子邮件中提到过),但我在平常的地方(谷歌、c2.com上的维基等)找不到任何细节 在哪里可以找到更多信息?启用码模式实际上只是观察者模式的变体。在系统的有趣部分设置观察者,创造条件。然后启用程序可以观察条件并启用/禁用小部件 例如,当你加载一个窗口时,你会创建一些条件来观察诸如列表或组合框(或列表或组合框下面的模型)是否选择了某些内容。

在《极限编程应用》一书中,肯·奥尔(Ken Auer)随意提到了一种启用码模式。肯特·贝克(Kent Beck)也提到了这一点(至少在2004年11月8日的一封电子邮件中提到过),但我在平常的地方(谷歌、c2.com上的维基等)找不到任何细节


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

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

例如,当你加载一个窗口时,你会创建一些条件来观察诸如列表或组合框(或列表或组合框下面的模型)是否选择了某些内容。你可以称之为“somethingSelectedCondition”。然后,您将使能器连接到绑定到一个或多个条件的小部件(您可以和/或一起连接,但通常您只想在实践中将它们连接在一起)

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

createButton(String buttonLabel、String methodActionName、String[]条件名称)

ConditionName将查找某种HashMap中可用的条件,创建一个CompositeContdition(它与条件的所有观察到的布尔值相加),并创建一个Enabler,该Enabler侦听CompositeContdition并告诉创建的小部件根据基础条件启用/禁用

这听起来有点复杂,但一旦您创建了底层基础设施,几行代码就可以连接您的条件,然后用户界面总是与条件同步

我想我从来没有正式编写过启用码模式,或者我只是给你指出一个URL

嗯,


这似乎是最终的答案!(FWIW,如果你真的写得好的话,我很喜欢这个URL:-)也谢谢你提供了一本非常有用和有趣的书。