(结构型模式)Composite——组合模式

1、意图

组合模式:将对象组合成树形结构以表示“部分——整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性

2、优缺点分析

GOOD:整体和部分可以被一致对待(如WORD中复制一个文字、一段文字、一篇文章都是一样的操作)

用户不用关心到底是处理一个叶结点还是处理一个组合组件,也就不用为定义组合而写一些选择判断语句,即用户可以一致的使用组合结构和单个对象。

适用情况当需求中是体现部分与整体层次的结构时,以及希望用户可以忽略组合对象与单个对象的不同,统一地使用组合结构中的所有对象时,就应该考虑用组合模式

3、UML图

K~7}3T5%@%4TN89B2QV_MIN

抽象基类:

1)Component:为组合中的对象声明接口,声明了类公有接口的缺省行为,声明了一个接口函数可以访问Component的子组件。

接口函数:

1)Component::Operation:定义了各个组件共有的行为接口,由各个组件的具体实现

2)Component::Add:添加一个子组件

3)Component::Remove:删除一个子组件

4)Component::GetChild:获得子组件的指针

解析:组合模式是为了解决组件之间的递归组合提供了解决的办法,它主要分为两个派生类,其中的Leaf是叶子结点,也就是不再含有子组件的结点;而Composite是继续含有子组件的类。

你可能感兴趣的:(组合模式)