(C++设计模式) ------组合模式-- 结构型模式
设计模式的学习是一个循序渐进的过程,每一个设计师都是在套用这几种设计模式来实现自己的软件构架,很多都是融合会贯通的,一个设计模式中不仅仅是用到一种,所以要灵活运用这些设计模式。理解了设计模式对设计和代码的阅读都有很大的好处!!
今天我们学习结构性模式组合(Composite)模式;
Composite组合模式
作用:将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性.
图中类的说明:
○ Component
–组合中的对象声明接口
–实现所有类共有接口的缺省方法
–声明一个接口用于访问和管理Component的子组件
○ Leaf
–表示叶节点对象(叶节点没有子节点)
○ Composite
–定义有子部件的那些部件的方法
–存储子部件
–在Component接口中实现与子部件有关的操作
○ Client
–通过Component接口操作组合部件的对象
优点
(1) 简化客户代码,用户不必关心处理的是一个叶节点还是一个组合组件;
(2) 使得更容易添加新类型的组件,新定义的Composite或Leaf子类自动地与已有的结构和客户代码一起工作,不需改变原有的客户代码。
代码举例:
访问: