组合模式意在将对象组合成树形结构以表示部分与整体的层次结构关系,并且用户对单个对象的操作以有对组合对象的操作都是一致的.即:组合对象 is-a 单个对象,同时又可以组合着 n 个的单个对象(甚至于其他组合对象也可以).当对一个组合对象执行某行为会被转化为对其所组合的 n 个对象进行操作.一个组合对象,又可被看作是一个大一些的.较简单单个对象稍微复杂些的单个对象,它也可以进一步被其他组合对象组合.类关系图参考如下: 数据结构中的树节点的设计,就是个典型的组合模式的应用.每个树节点可组合着N个节点,
Composite模式模式能够使容器与内容具有一致性,创造出递归结构.有时,与将文件夹和文件都作为目录条目看待一样,将容器和内容作为同一种东西看待,可以帮助我们方便地处理问题.在容器中既可以放入内容,也可以放入小容器,然后在那个小容器中,又可以放入更小的容器.这样,就形成了容器结构.递归结构. 示例程序类图如上图. package bigjunoba.bjtu.composite; public abstract class Entry { public abstract String getN
目录 代码 角色 想法 Composite模式即组合模式.它能够使容器和内容具有一致性,创造出递归结构. 举个例子:在文件系统中,文件夹既是内容,也是容器,具有一致性,这样一来,文件系统形成递归结构.组合模式就是用来创建这种结构的. 代码 下面这段代码以文件系统为例实现了组合模式. UML Entry类 表示目录条目,将文件和文件夹的共有属性抽取出来. public abstract class Entry { public abstract String getName(); public a