确定此系统的最佳设计模式

时间:2014-11-19 16:09:50

标签: design-patterns architecture uml software-design

我想设计一个执行以下操作的Lights硬件控制器:

  1. 有控制灯光的命令,如开启,关闭,打开所有灯光,关闭所有灯光。
  2. 将来可能会定义其他操作,例如添加影响或类似这些操作(这种模式可以帮助我在不污染现有系统的情况下向现有操作添加新操作)。
  3. 控制器应支持多种灯(适配器是一个很好的选择吗?其他任何选项??)。
  4. 除了手动控制之外,控制器还有一个计算机UI(这是在控制器和软件UI之间提供接口的最佳模式)。
  5. 我想在这里使用一些设计模式,如(Iterator,Composite,Observer,Facade,Factory,Builder,Template Method,Decorator,Command,Visitor,Proxy和/或Adapter)。我想知道哪种模式最适合每种模式以及如何在这里应用它们?如果有任何类似于这个的例子吗?

1 个答案:

答案 0 :(得分:0)

所有这些

  

在控制器和软件UI之间提供接口

让我想起了Mediator design pattern。因为它定义了类之间的简化通信。还定义一个封装一组对象如何交互的对象。 Mediator通过使对象明确地相互引用来促进松散耦合,并且它允许您独立地改变它们的交互。

关于

  

多种灯

我认为divergent change的概念会对你有很大帮助。简而言之,通过列表的其余部分:

  1. Command design pattern - 将您的命令封装为对象

  2. BuilderDecoratorState

  3. Facade用于控制器Composite用于