原型模式简单实现

原型模式原型模式:就是用拷贝的方式创建一个新的对象。
模式价值:这个不太好说,我也没找到一个合适的例子来解释他的价值,如果真的有合适的需求这样做,那么你就知道他的价值了。
现在你只需要知道拷贝一个新对象和创建一个新对象的差别就行了。(现在是学这个模式的第一阶段,知道这个模式的特点就行了)
上代码:
#include
using namespace std;
#include

// 抽象层
class Prototype{
public:
int data;
virtual Prototype* Clone()=0;
};
class Client{
public:
Prototype* prototype;
void Operation(){
//模式要点:客户端通过克隆的方式来获取对象
Prototype* p_a = prototype->Clone();
cout<<“p_a:data”<<p_a->data<<"\n";
Prototype* p_b = prototype->Clone();
cout<<“p_a:data”<<p_b->data<<"\n";
}
};
//具体层
class ConcretePrototype1: public Prototype{
public:
ConcretePrototype1(){
data = 5;
}
virtual Prototype* Clone(){
ConcretePrototype1* o = new ConcretePrototype1();
o->data = data;
return o;
}
};
class ConcretePrototype2: public Prototype{
public:
ConcretePrototype2(){
data = 6;
}
virtual Prototype* Clone(){
ConcretePrototype2* o = new ConcretePrototype2();
return o;
}
};
//客户端调用
int main()
{
cout<<“原型模式演示\n”;
Client client;
ConcretePrototype1* p1 = new ConcretePrototype1();
client.prototype = p1;
client.Operation();
ConcretePrototype2* p2 = new ConcretePrototype2();
client.prototype = p2;
client.Operation();

//看代码不用考虑以下内容
int cin_a;
cin>>cin_a;
return 0;

}

猜你喜欢

转载自blog.csdn.net/xie__jin__cheng/article/details/87965721
今日推荐