设计模式学习-----原型模式
2012-12-04 15:58
531 查看
原型模式
GOOD:从一个对象再创建另外一个可定制的对象,而无需知道任何创建的细节。并能提高创建的性能。 说白了就COPY技术,把一个对象完整的COPY出一份。
转载请注明,文章来自:http://blog.csdn.net/windows_nt
例:
GOOD:从一个对象再创建另外一个可定制的对象,而无需知道任何创建的细节。并能提高创建的性能。 说白了就COPY技术,把一个对象完整的COPY出一份。
转载请注明,文章来自:http://blog.csdn.net/windows_nt
例:
#include<iostream> #include <vector> #include <string> using namespace std; class Prototype //抽象基类 { private: string m_strName; public: Prototype(string strName) { m_strName = strName; } Prototype() { m_strName = "我的名字叫刘彦敏,你呢?"; } void Show() { cout<<m_strName<<endl; } virtual Prototype* Clone() = 0 ; } ; // class ConcretePrototype1 class ConcretePrototype1 : public Prototype { public: ConcretePrototype1(string strName) : Prototype(strName){} ConcretePrototype1(){} virtual Prototype* Clone() { ConcretePrototype1 *p = new ConcretePrototype1() ; *p = *this ; //复制对象 return p ; } } ; // class ConcretePrototype2 class ConcretePrototype2 : public Prototype { public: ConcretePrototype2(string strName) : Prototype(strName){} ConcretePrototype2(){} virtual Prototype* Clone() { ConcretePrototype2 *p = new ConcretePrototype2() ; *p = *this ; //复制对象 return p ; } } ; //客户端 int main() { ConcretePrototype1* test = new ConcretePrototype1("刘彦敏"); ConcretePrototype2* test2 = (ConcretePrototype2*)test->Clone(); test->Show(); test2->Show(); return 0; }
相关文章推荐
- 设计模式学习--原型
- 一步步学习javascript基础篇(4):面向对象设计之创建对象(工厂、原型和构造函数等模式)
- 设计模式学习(四) 原型模型
- 设计模式学习(五)原型模式
- 跟着实例学习设计模式(7)-原型模式prototype(创建型)
- 设计模式深入学习---Prototype原型模式
- 设计模式学习(创建型模式)—原型模式(ProtoType)
- 设计模式学习笔记(6)原型模式
- 步步为营 .NET 设计模式学习笔记 五、Prototype(原型模式)
- C#设计模式学习资料--原型模式
- 设计模式 学习笔记(4)工厂方法模式、原型模式、模板方法模式
- 【HeadFirst 设计模式学习笔记】18 原型(Prototype)模式拾零
- 设计模式学习之原型模式(Prototype)
- 设计模式学习--原型模式(深复制与浅复制)
- Java设计模式学习04——原型模式
- 设计模式学习05—原型模式
- Android设计模式学习笔记(原型模式)
- 设计模式入门学习 原型Prototype模式
- java 设计模式学习笔记(8) - 原型模式
- 学习设计模式-原型模式