使用场景:在不能根据类创建对象的时候,根据已有的对象创建对象
不能根据类创建对象的情况:
- 创建一个类的对象时,需要根据多种对象来创建,创建的过程非常复杂
- 难以根据类生成对象
例子:
class Product
{
public:
virtual Product* createClone() = 0;
virtual void use() = 0;
};
class Apple: public Product
{
int x;
public:
Product* createClone()
{
return new Apple(*this);
}
Apple(int x = 0)
{
this->x = x;
}
Apple(const Apple& other)
{
x = other.x;
}
void use()
{
cout << "x = " << x << endl;
}
};
int main()
{
Product* p1 = new Apple(10);
Product* p2 = p1->createClone();
p1->use();
p2->use();
return 0;
}
本文介绍了一种在无法直接通过类创建对象的情况下,利用已有对象进行复制的原型模式实现方法。通过具体的代码示例展示了如何创建一个可以复制自身的产品类。
980

被折叠的 条评论
为什么被折叠?



