定义(GoF《设计模式》):将对象组合成树形结构以表示“部份整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有1致性。
触及角色
1.Component:(View)是组合中的对象声明接口,在适当的情况下,实现所有类共有接口的默许行动。声明1个接口用于访问和管理Component子部件。
2.Leaf:(TextView、自定义View)在组合中表示叶子结点对象,叶子结点没有子结点(即不能在View内再添加View)。
3.Composite:(ViewGroup及其子类)定义有枝节点行动,用来存储子部件,在Component接口中实现与子部件有关操作,如增加(addView)、取得(getViewAt)和删除(removeView)等。
适用性
以下情况下适用Composite模式:
1.你想表示对象的部份-整体层次结构
2.你希望用户疏忽组合对象与单个对象的不同,用户将统1地使用组合结构中的所有对象。
总结
(1).结构型模式
(2).定义了包括基本对象和组合对象的类层次结构。这类结构能够灵活控制基本对象与组合对象的使用。
(3).基本对象和组合对象有1致性,用户不用辨别它们。
(4).使得更容易添加新类型的组件。
未完待续,有不对的地方,请指正。