组合模式:
将对象组合成树形结构,表现为”部分-整体“、“内容-容器”的层次结构,
使得客户能以一致的方式处理组合的对象。
同族化的成分(Component):为所有组合的对象提供统一的接口。
原子性的叶子(Leaf):在组合中表示末端的子节点对象,不能延伸出其他节点。
使合成的树干(Composite):在组合中表示可容纳、延伸的所有其他节点。
用来存放和管理同级别的或下级别的节点。
容器-容器-容器-内容
容器-容器-内容
容器-内容
(容器可看做一个整体,内容可看做容器的一部分。)
【1】透明式的组合模式
将树干对叶子的所有操作都抽象到同化成分中。
但是比如add(节点)这些方法是叶子没必要有的。
【2】安全式的组合模式
只将树干和叶子都能用的操作抽象到同化成分中。
这样,只有树干才能使用add(节点)方法。
实例:
在android中,View和ViewGroup类的使用。