原型模式:属于创建型模式
基本原理:又称为克隆模式,拷贝本身对象。可以直接使用语言中的拷贝构造。
主要流程:在构建对象的时候实现一个对本身的拷贝函数。
特别注意:要有对应的销毁方法。
#include <iostream>
using namespace std;
//对象基类,可以对有共性的对象统一要求功能函数
class prototype
{
public:
prototype(){}
virtual ~prototype(){}
virtual prototype * clone() = 0;
};
//具体的对象及实现拷贝
class concreateprototype1 : public prototype
{
public:
concreateprototype1();
concreateprototype1(const concreateprototype1&);//拷贝构造函数
virtual ~concreateprototype1();
virtual prototype* clone();
private:
int x = 0;
};
concreateprototype1::concreateprototype1()
{
cout<<" concreateprototype1 create !"<<endl;
}
concreateprototype1::concreateprototype1(const concreateprototype1& contype)
{
cout<<" cclone concreateprototype1 "<<endl;
}
concreateprototype1::~concreateprototype1()
{
cout<<" destruction of concreateprototype1"<<endl;
}
prototype * concreateprototype1::clone()
{
return new concreateprototype1(*this);
}
int main()
{
prototype *ptype = new concreateprototype1();
prototype *copytype1 = ptype->clone();
delete ptype;
delete copytype1;
return 0;
}