结合复合和模板模式

时间:2013-08-11 14:54:52

标签: c++ design-patterns architecture

我有三个设备具有不同的Run()实现和接口。这些设备可能包含其他子系统或可能包含其他设备。

我知道我应该使用TemplateComposite模式。但在模板模式中,我需要从设备类继承device1 device2和device3。另一方面,在Composite模式中,我有设备,CompositeDevice和子系统类。

我很困惑将这两种模式结合起来。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

让我们从http://en.wikipedia.org/wiki/Composite_pattern获取复合模式。 Leaf和Composite都继承自Component类。现在,要将模板模式与复合模式相结合,所有设备都应该继承Component类 - 这些是您的Leaf类。最后Composite类可以使用你的叶子类。

     Component   ----------
  ^   ^   ^    ^           |
  |   |   |    |           |
Dev1 Dev2 Dev3 Composite<>-|

组件类是包含Run()函数声明的接口。