C++设计模式——Prototype模式
来源:互联网 发布:js span disabled 编辑:程序博客网 时间:2024/05/22 03:32
关于Prototype模式
Prototype模式,简单理解就是新对象的创建可以通过已有对象进行创建。 Prototype模式提供了一个通过已存在对象进行新对象创建的接口(Clone),Clone()实现和具体的实现语言相关,在C++中通过拷贝构造函数实现。
Prototype模式通过复制原型(Prototype)而获得新对象的创建功能,能够生产对象,让我们想起了工厂模式。实际上Prototype模式和Builder模式、AbstractFactory模式都是通过一个类(对象实例)来专门负责对象的创建工作(工厂对象),它们之间的区别是:Builder模式重在复杂对象的一步步创建(并不直接返回对象),AbstractFactory模式重在产生多个互相依赖的对象,而Prototype模式重在从自身复制自己创建新类。
代码示例
Ptototype模式的实质就是创建一个单独的接口Clone(),由这个接口实现复制已存在的对象。不通过接口的话也可以实现复制对象,这就要我们重写拷贝构造函数。例如:
std::string s="124";std::string s1(s);
在设计模式中,将拷贝构造函数封装成一个接口,实现复制对象的功能。
完整示例如下:
// PrototypePattern.cpp#include "stdafx.h"#include<iostream>using namespace std;class Prototype{public: virtual ~Prototype(){} virtual Prototype* Clone() const = 0;protected: Prototype(){}};class ConcretePrototype:public Prototype{public: ConcretePrototype(){} ConcretePrototype(const ConcretePrototype& obj) { cout << "拷贝构造,注意深拷贝,浅拷贝的问题\n"; } ~ConcretePrototype(){} Prototype* Clone()const { return new ConcretePrototype(*this); }private:};int main(){ Prototype* p = new ConcretePrototype(); Prototype* p1 = p->Clone(); system("pause"); return 0;}
阅读全文
0 0
- 设计模式7—Prototype设计模式
- 设计模式——原型模式(Prototype)
- Prototype模式——设计模式学习
- Prototype模式——设计模式学习
- C++设计模式——Prototype模式
- JAVA设计模式 — 原型模式(Prototype)
- 设计模式7——Prototype设计模式
- 设计模式:Prototype模式
- 设计模式-Prototype模式
- 设计模式-Prototype模式
- 设计模式 - Prototype 模式
- 设计模式-Prototype模式
- 设计模式--Prototype模式
- 设计模式学习(四) —— Prototype
- 设计模式笔记——Prototype
- 设计模式之——Prototype Pattern(原型模式)
- 设计模式精解之——Prototype模式
- 设计模式——原型模式(prototype)
- 排序列表转化为二分查找树
- Android热修复技术(三)-----代码修复之冷启动类加载原理
- TI C66787多核DSP的架构简介
- 机试练习7.11
- [Err] 1055
- C++设计模式——Prototype模式
- 简单LinuxC程序关于实现识别字符串中合法的帧(字符串输入)
- 计算机导论第四课之响应查询笔记二
- 直接插入法(C语言版本)
- == 和 Equals 的区别
- Java基本类型
- 【二叉树】判断两棵树是否相同
- 简易商品交易系统QR_cord界面代码设计
- PHP 封装自己的图片上传类