设计模式之原型模式及c++实现
来源:互联网 发布:矩阵方程的通解的求法 编辑:程序博客网 时间:2024/05/23 20:52
原型设计模式属于创建型模式。创建方式为通过一个已经存在的对象复制出完全一样的对象。
适用场合为:
1. 构造函数复杂、耗时的对象。2. 对象的当前状态不确定、包含的数据不断变化
举例:
假设我们有这样的需求,我们在ORM框架的设计中,经常会遇到这样的问题,我们在处理某个对象的编辑状态的时候,我们想框架给我们生成的更新数据库的SQL语句,不包含数据列没有发生变化的列,不要出现在更新语句中,这个时候,可能一个方案会是,编辑前克隆一个对象,然后等编辑后提交的时候,生成相应的语句时进行对比之前克隆的对象,看看是否数据发生变化,如果说对象的部分数据列发生变化,那么就只是把变化的数据列进行更新。
对象拷贝时应注意浅复制和深复制的区别
原型设计模式类图:
c++ demo 如下
#include <stdio.h>
class CProtoType
{
public:
virtual ~CProtoType();
virtual CProtoType* Clone() const=0;
protected:
CProtoType();
};
class ConcretePrototype:public CProtoType
{
public:
ConcretePrototype(){printf("ConcreteProtoType Constructor\n");};
ConcretePrototype(const ConcretePrototype& protoType){printf("ConcreteProtoType Copy Constructor\n");};
virtual CProtoType* Clone() const{return new ConcretePrototype(*this);};
protected:
private:
};
int main(int argc, char* argv[])
{
CProtoType* pt=new ConcretePrototype();
CProtoType* pt2=pt->Clone();
getchar();
return 0;
}
- 设计模式之原型模式及c++实现
- 设计模式之原型模式(C++)
- C#--设计模式之原型模式
- 设计模式之原型模式,C++实现
- scala实现设计模式之原型模式
- 实现设计模式:原型模式
- 设计模式之原型
- 设计模式之原型
- 设计模式 之 原型
- 设计模式之原型
- 设计模式之原型
- 设计模式之原型模式
- 设计模式之原型模式
- 设计模式之-原型模式
- 设计模式之 原型模式
- 设计模式之原型模式
- 设计模式之原型模式
- 设计模式之原型模式
- 网页视频播放组件
- 十六章(单步执行)
- 第一篇技术文章 -- 有关配置tomcat
- log4cplus内存泄漏起因之一 结构体字节对齐 log4cplus结构体使用的是8字节对齐
- Android开发之资源文件存储
- 设计模式之原型模式及c++实现
- 回调函数的概念及其使用
- 图文详解使用Universal USB Installer制作usb闪盘(U盘)linux系统安装盘
- 指来指去(交换)
- Java之美[从菜鸟到高手演变]之类与对象(二)
- mysql 将null转代为0
- HDU2602 Bone Collector
- 打入“内部”寻“内幕”
- Linux makefile教程