组合模式(Composite)
一:定义
将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。
(目的是在某些业务上让用户在使用单个对象和组合对象时面对的是同一个接口, 将两者的差别隐藏起来)
二:例子
2.1 对于成熟的GUI框架,通常用户在添加或者删除一个控件的时候,不需要知道这个控件是否拥有子控件。例如android ui,添加一个Textview(单个对象)和添加一个LinearLayout(组合对象)的接口一致的, 因为他们都是继承自View类。
2.2 对于一个xml文件,在遍历xml文件里所有节点的这个需求上, 我们不需要在意这个节点是否拥有子节点,也就是无论叶子节点还是分支节点我们一样对待。
三:结构
四:缺点
直接使用实现类,并不是面向接口。