1.合成模式的角色
(1) 抽象构件(Component):给参加组合的对象规定一个接口
(2) 树叶构件(Composite):代表参加组合的树叶对象
(3) 树枝构件: 代表参加组合的含有子对象的对象
2.合成模式的两种方式
(1) 透明方式;在Component里面声明所有的用来管理子类的对象的方法。
优点:所有的构建类都有相同的接口,树叶类和合成类对象对象的区别在接口层次上消失了。客户端可以同等的对待所有的对象。
缺点: 树叶类和树枝类事实上是有区别的,树叶类不应该存在操作下一层次对象的方法。
(2) 安全方式:在Composite里面声明所有的用来管理子类的对象的方法
优点:将树叶类和树枝类的行为分开,树叶类不在对下一层对象的操作方法。
缺点:不够透明,树叶类和树枝类拥有不同的接口。