组合模式
组合模式:整体--部分模式。
将多个对象组合成树形结构以表示“整体--部分”的层次结构。
组合模式使得用户对单个对象(叶子对象)和组合对象(容器对象)的使用具有一致性。
模式动机:描述了如何将容器对象和叶子对象进行递归组合,使得用户在使用时无须对它们进行区分,可以一致地对待容器对象和叶子对象。
组合模式角色:抽象组件Component、节点Composite Node、Leaf节点。
优点:1、处理对象和组合对象都非常方便
2、组合对象和个体对象实现了相同的接口,用户一般不区分个体对象和组合对象
3、当增加新的容器对象和叶子对象时,主要的代码不需要修改
缺点:容器对象和叶子对象都是实现类,而不是接口,违反了依赖倒置原则
适用场景:想要表达对象部分-整体层次结构
希望用户用一致的方法处理个体对象和组合对象时