设计模式(4)-对象创建型模式-Prototype模式
来源:互联网 发布:销售报表数据分析 编辑:程序博客网 时间:2024/06/10 08:53
原文:http://blog.csdn.net/davidwang9527/article/details/24013061
1.对象创建型模式
1.4 Protoype模式
1.4.1需求
通过拷贝原形对象创建新的对象。
1.4.2结构
•P r o t o t y p e(Gr a p h i c)
— 声明一个克隆自身的接口。
•C o n c r e t e P r o t o t y p e(S t a ff、W h o l e N o t e、H a l fN o t e)
— 实现一个克隆自身的操作。
• C l i e n t(G r a p h i c To o l)
— 让一个原型克隆自身从而创建一个新的对象。
1.4.3例子-C++
//Prototype.h #ifndef _PROTOTYPE_H_ #define _PROTOTYPE_H_class Prototype { public: virtual ~Prototype(); virtual Prototype*Clone()const = 0; protected: Prototype(); private: };class ConcretePrototype:public Prototype { public: ConcretePrototype(); ConcretePrototype(const ConcretePrototype& cp); ~ConcretePrototype(); Prototype* Clone() const; protected: private: };#endif //~_PROTOTYPE_H_ 代码片断2:Prototype.cpp//Prototype.cpp#include"Prototype.h" #include<iostream> using namespace std; Prototype::Prototype() { }Prototype::~Prototype() { }Prototype* Prototype::Clone() const { return 0;} ConcretePrototype::ConcretePrototype() { }ConcretePrototype::~ConcretePrototype() { }ConcretePrototype::ConcretePrototype(const ConcretePrototype& cp) { cout<<"ConcretePrototype copy..."<<endl;}Prototype* ConcretePrototype::Clone() const { return newConcretePrototype(*this); }//main.cpp #include"Prototype.h" #include<iostream> using namespace std;int main(int argc,char*argv[]){ Prototype* p= newConcretePrototype(); Prototype* p1=p->Clone(); return 0;}注:这里只是说明概念,没有涉及C++常见的深度拷贝问题.
0 0
- 设计模式(4)-对象创建型模式-Prototype模式
- 设计模式(4)-对象创建型模式-Prototype模式
- 设计模式之Prototype(原型模式)对象创建型
- 设计模式之对象创建型 — prototype 原型模式
- 模式设计 创建型 Prototype
- 创建型设计模式---原型模式(Prototype)
- 设计模式学习之--PROTOTYPE(原型)对象创建型模型
- (C++设计模式) ------原始模型模式 Prototype -- 创建型模式
- 设计模式:创建型模式:原型模式(prototype pattern)
- Prototype(原型)---对象创建型模式
- [设计模式-创建型]原型(Prototype)
- 设计模式-创建型-prototype 原型
- 设计模式--创建型-Prototype(原形)
- (创建模式)设计模式之Prototype(原型)
- 设计模式-创建模式之Prototype(Clone)
- 设计模式之原型法(ProtoType)----对象创建型模式
- C#面向对象设计模式纵横谈(6):Prototype 原型(创建型模式)
- C#面向对象设计模式纵横谈 学习笔记6 Prototype 原型(创建型模式)
- nyoj 328 完全覆盖
- asp.net课后总结(4)
- c语言strcpy函数的漏洞
- 6174问题
- 汉诺塔
- 设计模式(4)-对象创建型模式-Prototype模式
- PopupWindow弹窗demo
- 拷贝文件经典代码
- Android Loaders(一)概述
- Pow(x, n)
- [Linux内存]linux内存学习(五)——伙伴系统
- 定时跳转
- DESTOON邮件发送设置
- Mutihop on ssh