Prototype模式去掉Clone方法
来源:互联网 发布:韩国代购淘宝店 编辑:程序博客网 时间:2024/05/17 23:57
Prototype模式去掉Clone方法
意图:
用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
结构图:
Prototype的主要缺陷是每一个Prototype的子类都必须实现Clone操作,这很烦。
一般都这样实现:
Prototype* ConcretePrototype::Clone()
{
return new ConcretePrototype(*this);
}
{
return new ConcretePrototype(*this);
}
现在想去掉这个重复的操作,
结构图如下:
实现如下:
class PrototypeWrapper
{
public:
~PrototypeWrapper() {}
virtual Prototype* clone() = 0;
};
template <typename T>
class PrototypeWrapperImpl : public PrototypeWrapper
{
public:
PrototypeWrapperImpl()
{
_prototype = new T();
}
virtual Prototype* clone()
{
return new T(*_prototype);
}
private:
T* _prototype;
};
T* _prototype;
};
使用:
PrototypeWrapper* prototype = new PrototypeWrapperImpl<ConcretePrototype>();
Prototype* p = prototype->clone();
- Prototype模式去掉Clone方法
- Java的clone方法 prototype
- 设计模式-创建模式之Prototype(Clone)
- prototype原型模式,详解java Clone
- 设计模式:Prototype 原型模式 - 同学你抄过别人的作业么?-clone()方法的使用
- Rhyme/Java 设计模式之原型模式prototype通过clone方法和反序列化实现深复制
- 详解Java中的clone方法 -- 原型模式
- 详解Java中的clone方法 -- 原型模式
- 详解Java中的clone方法 -- 原型模式
- Java中的clone方法 -- 原型模式
- 详解Java中的clone方法 -- 原型模式
- 详解Java中的clone方法 -- 原型模式
- 详解Java中的clone方法 -- 原型模式
- 详解Java中的clone方法 -- 原型模式
- 详解Java中的clone方法 -- 原型模式
- 详解Java中的clone方法 -- 原型模式
- 详解Java中的clone方法 -- 原型模式
- 详解Java中的clone方法 -- 原型模式
- 登录Windows后自动注销,原来中了pcidump.sys,scvhost.exe,SoundxVolumns.dll,kav32.exe等
- 为生计而算,为亲情所想
- A Highly Effective Memory Check Method
- 第一天工作内容 php
- smallgfw: 一个基于DFA的敏感词检测和替换模块。
- Prototype模式去掉Clone方法
- Discuz!论坛助手 [原创] [服务端+客户端]插件 人气提升/贴子监控/批量顶贴/来贴提醒/编辑辅助工具 1.0(附演示)
- 相对路径与绝对路径
- 分配任务的沟通技巧
- having和where子句的区别
- 记
- 插入排序
- FireFox IE 之间css 一差别
- OSI七层网络模型与TCP/IP四层网络模型