在开发中,我们经常可能要递归构建树状的组合结构,Composite模式则提供了很好的解决方案。
Composite的典型结构为:
Component模式结构Composite 模式在实现中有一个问题就是要提供对于子节点( Leaf)的管理策略,这里使用的是STL 中的 vector,可以提供其他的实现方式,如数组、链表、 Hash 表等。
区别
Composite 模式通过和 Decorator 模式有着类似的结构图, 但是 Composite 模式旨在构造类,而Decorator 模式重在不生成子类即可给对象添加职责。 Decorator 模式重在修饰, 而Composite 模式重在表示。
网友评论