标签:
1、定义
将对象组合成树形结构以表示“部分——整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。
类比理解:复制文件时,可以一个一个单独复制,也可以一次将整个文件夹复制了;再比如文本编辑,可以给单个字进行加粗、变色、改字体,也可以对整段文字进行同样的操作。这个问题实际上就是要求“整体与部分可以被一致对待”。
2、理论类比(Component-细胞,Leaf-叶子,Composite-树枝)
3、关于“透明方式”与“安全方式”
4、使用时机
当你发现需求中体现部分与整体的层次结构时,以及你希望用户可以忽略组合对象与单个对象的不同,统一的使用所有组合结构中的所有对象时,就应该考虑使用组合模式。
但是也并不是所有的树枝都是需要部分和整体共用的,可能只是树枝上的某两个叶子在整个树结构中是共用的。以公司结构为例,总公司下辖地区公司,地区公司下辖每个省的办事处;那么在这整个结构中人力资源部和财务部就是需要共用的例子,而树枝(比如华东分公司,南京办事处)除了这些共用的叶子外,也有自己独有的部门,这是就需要使用具体的树枝对象来调用其独有的部门。组合模式所描述的就是说,当操作整个树结构共有的叶子或树枝对象的某些方法时,组合模式可以达到忽略该方法到底是属于总公司还是分公司还是最底层的办事处。
标签:
原文地址:http://www.cnblogs.com/qingtian-jlj/p/5971825.html