5

在他的应用极限编程一书中,Ken Auer 随便提到了一个 Enabler 模式。Kent Beck 也提到了它(至少在 2004 年 11 月 8 日的一封电子邮件中),但我无法在通常的地方找到任何细节(谷歌、c2.com 上的 wiki 等)

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

4

1 回答 1

5

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

例如,当您加载一个窗口时,您会创建条件来观察列表或组合框(或列表或组合框下方的模型)是否选择了某些内容。您可以将其称为“somethingSelectedCondition”。然后,您将启动器连接到与一个或多个条件相关的小部件(您可以和/或一起...尽管通常您只是想在实践中将它们一起使用)。

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

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

conditionNames 将查找在某种 HashMap 中可用的条件,创建一个 CompositeCondition(它将所有观察到的条件布尔值与)并创建一个 Enabler,它侦听 CompositeCondition 并告诉创建的小部件启用/禁用根据基本情况。

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

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

高温下,

于 2009-08-09T20:31:41.910 回答