设计模式-Composite
来源:互联网 发布:网络知识产权侵权 编辑:程序博客网 时间:2024/05/04 03:44
GeekBand笔记:
侯捷老师-C++面向对象高级编程
设计不同类的时候,考虑到各个类之间的相互关联。
已FileSystem为例,Primitive为File的范例,Composite除了容纳基本的Primitive,还需要容纳自己本身。另一个考虑的问题是,容器里面应该放置什么?首先,不写死,vector<>里面既不放置左边的类型,也不放置右边,而是放置指向父类的指针。其次,C++里面容器必须放指针,而不是放置具体的数值,因为容器每一个块大小应该相等。
在Component类的定义中,add函数没有定义纯虚函数的原因是,倘若定义为纯虚函数,子函数必须重新定义add函数,但是Primitive类显示生活中,不需要重新定义,so…
下面是三个class的代码:
class Component{ int value; public: Component(int val) { value = val; } virtual void add(Componet*){} };
class Composite:public Component{ vector<Component*> c; public: Composite(int val):Component(val){} void add(Component* elem){ c.push_back(elem); } ...};
class Primitive:public Component{ public: Primitive(int val):Component(val){}};
0 0
- 设计模式 -- Composite 模式
- 设计模式 - Composite模式
- 设计模式--Composite 模式
- 设计模式之Composite
- 设计模式之Composite
- 设计模式之Composite
- 设计模式之 composite
- 设计模式思考-Composite
- Java 设计模式 Composite
- composite-----设计模式
- 设计模式 - 组合 Composite
- JAVA设计模式-Composite
- 设计模式-composite
- Composite 设计模式
- Structual设计--Composite模式
- 设计模式-Composite
- Composite(组合)设计模式
- [DP]Composite设计模式
- Chapter 19:animations - iOS 8 Swift Programming cookBook 读书笔记
- 如何判断一个SOCKET连接是否已经断开
- Android添加View作为横线、竖线
- arrays.sort & arrays.parralsort
- 线段树(二)区间更新补充
- 设计模式-Composite
- awk http://my.oschina.net/denglz/blog/151310?p=1
- asp.net 六大对象之Request、Response
- HDU 5273 Dylans loves sequence——BestCoder Round #45(DP or 树状数组)
- 欧拉函数及其求法
- Walking Ant 1671 (广搜)
- spring的AOP和事务
- github iOS 地址
- CRLF注入详解 (HTTP响应头拆分)学习笔记(一)