装饰模式(Decorator),迭代器模式(Iterator),组合模式(composite)
来源:互联网 发布:分区 mysql 编辑:程序博客网 时间:2024/06/14 21:09
装饰模式,动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。属于行为型模式。
迭代器模式:
概念:提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示。
main(),客户
IProject,产品接口
CProject,产品类
IIterator,迭代器接口
IProjectIterator,产品迭代器接口
CProjectIterator,产品迭代器实现类
说明:CProject实现产品类,能够返回一个迭代器的指针。这个迭代器将封装产品类里的一个数组。所以迭代器在运行Next函数时,可以遍历这个数组的所有元素。
简单来说,就是用代码实现vector<int>::iterator或vector<int>::const_iterator。
组合模式:
概念:将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合的使用具有一致性。
main(),客户
CCorpNode,抽象基类,实现基本信息
CBranchNode,树枝节点,实现Addordinate()函数和GetSubordinate()函数
CLeafNode,叶子节点,IsLeaf属性总是“true”
说明:组合模式主要是实现在CBranchNode对象里增加对其它对象的数组,如vector<CCorpNode*>,数组里可以存放CBranchNode和CLeafNode对象。这样方便进行遍历操作。
注意:组合模式有透明组合模式和安全组合模式。透明组合模式是将Addordinate和GetSubordinate这两个函数也抽象到CCorpNode基类里,这增加了操作叶子节点的难度,更易出现逻辑问题。所以尽量使用安全模式。
0 0
- 装饰模式(Decorator),迭代器模式(Iterator),组合模式(composite)
- 装饰(Decorator)模式
- 装饰模式(Decorator)
- 装饰模式(Decorator)
- DECORATOR (装饰)模式
- Decorator(装饰)模式
- 装饰模式(Decorator)
- Decorator(装饰模式)
- 装饰模式(Decorator)
- 装饰模式(Decorator)
- 装饰模式(Decorator)
- Decorator(装饰)模式
- 装饰模式(Decorator)
- 装饰模式(Decorator)
- Decorator(装饰模式)
- Decorator(装饰)模式
- Decorator(装饰模式)
- 装饰模式(Decorator)
- priority_queue
- 从fibonacci数列浅谈递归
- 114. Flatten Binary Tree to Linked List
- CF 271F,区间gcd
- 导入myeclipse的项目所有的java文件中文乱码
- 装饰模式(Decorator),迭代器模式(Iterator),组合模式(composite)
- Linux 系统增加swap分区
- OC基础:XML的解析方式
- ACM-补提交 (ZCMU-1617)
- SPOJ BALNUM (数位DP)
- java项目之——坦克大战09
- JZOJ8.12(C组)遥控车
- 关于this指针的理解
- linux gnome 桌面图标增删