创建型模式五之Prototype
来源:互联网 发布:vip58中国网络经纪人 编辑:程序博客网 时间:2024/06/15 20:57
1. UML
2. 意图
Prototype模式通过复制原型(Prototype)而获得新对象创建的功能,这里Prototype本身就是“对象工厂”(因为能够生产对象); 实际上Prototype模式和Builder模式、AbstractFactory模式都是通过一个类(对象实例)来专门负责对象的创建工作(工厂对象),它们之间的区别是:Builder模式重在复杂对象的一步步创建(并不直接返回对象),AbstractFactory模式重在产生多个相互依赖类的对象,而Prototype模式重在从自身复制自己创建新类
3. code
Prototype.h
//Prototype.h#ifndef _PROTOTYPE_H_#define _PROTOTYPE_H_class Prototype{public:virtual ~Prototype();virtual Prototype* Clone() const = 0;protected:Prototype();};class ConcretePrototype:public Prototype{public:ConcretePrototype();ConcretePrototype(const ConcretePrototype& cp);~ConcretePrototype();Prototype* Clone() const;};#endif //~_PROTOTYPE_H_
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 new ConcretePrototype(*this);}
main.cpp
#include "Prototype.h"#include <iostream>using namespace std;int main(int argc,char* argv[]){ Prototype* p = new ConcretePrototype(); Prototype* p1 = p->Clone(); delete p; delete p1; return 0;}
- 创建型模式五之Prototype
- 五、Prototype 原型模式(创建型)
- 创建型模式之Prototype
- 23种设计模式之五(创建型模式)Prototype模式
- 创建型模式之原型(ProtoType)模式
- 创建型模式之原型模式(prototype)
- 创建型模式之原型模式PROTOTYPE
- 创建型模式之四---Prototype
- 创建模式之Prototype(原型)
- 创建模式之Prototype(原型)
- 设计模式笔记--创建型模式之四--原型prototype
- 创建型模式之原型模式(ProtoType)
- 设计模式之Prototype(原型模式)对象创建型
- 设计模式(创建型)之原型模式(Prototype Pattern)
- 【设计模式】创建型模式之原型Prototype
- 5种创建型模式之:原型模式(Prototype)
- 设计模式之对象创建型 — prototype 原型模式
- 【设计模式学习笔记五】【创建型模式】【原型模式(Prototype)】
- windows xp下安装 oracle 10g OLS(Oracle Label Security)
- 常用嵌入式开发环境搭建收集
- 64位系统下使用debug
- C 三角函数
- 疯狂的程序员(绝影)
- 创建型模式五之Prototype
- AnkhSVN服务器ip地址变化(URI 修改)
- 几款极好的 JavaScript 文件上传插件
- OpenCart如何添加货币
- Variant类,实现单链表原型中节点可存储任意类型
- 打造Android的中文Siri语音助手(一)——小I机器人的接口
- 一个大学生创业者的“白日梦”项目
- TPC,TPCC,TPMC(数据库性能衡量指标)
- Android 中解决线性布局无法对齐的问题