创建型模式之原型模式

xiaoxiao2021-02-27  290

原文链接:点击打开链接

功能:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。原型模式其实就是从一个对象创建另外一个可定制的对象,而且不需知道任何创建的细节。

优点:   

  一般在初始化的信息不发生变化的情况下,克隆是最好的办法,既隐藏了对象创建细节,又提高性能。其等于是不用重新初始化对象,而是动态地获得对象运行时的状态。

缺点: 

 

模式应用:

C++举例:

#ifndef PROTOTYPE_H #define PROTOTYPE_H #include <iostream> #include <string> using std::cout; using std::endl; using std::string; class ProtoType{ private: string m_strName; public: ProtoType(){m_strName="";} ProtoType(string temp){m_strName=temp;} void Show(){cout<<m_strName<<endl;} virtual ProtoType* Clone()=0; }; class ProtoTypeFirst : public ProtoType{ public: ProtoTypeFirst(){} ProtoTypeFirst(string temp): ProtoType(temp){} virtual ProtoType* Clone(){ ProtoTypeFirst* p=new ProtoTypeFirst; *p=*this; return p; } }; class ProtoTypeSecond : public ProtoType{ public: ProtoTypeSecond(){} ProtoTypeSecond(string temp):ProtoType(temp){} virtual ProtoType* Clone(){ ProtoTypeSecond* p=new ProtoTypeSecond; *p=*this; return p; } }; #endif #include <iostream> #include "prototype.h" int main(){ ProtoTypeFirst* pExampleA=new ProtoTypeFirst("James"); ProtoTypeSecond* pExampleB=(ProtoTypeSecond*)pExampleA->Clone(); pExampleA->Show(); pExampleB->Show(); return 0; }

转载请注明原文地址: https://www.6miu.com/read-3885.html

最新回复(0)