【发布时间】:2016-06-26 15:38:31
【问题描述】:
我试图了解何时应该使用原型设计模式。 这是我理解的原型示例:
class Prototype
{
public:
virtual Prototype* clone() = 0;
...
};
class ConcretePrototype : public Prototype
{
public:
Prototype* clone() override { ... }
};
// Usage:
ConcretePrototype proto;
auto protPtr = proto.clone();
问题在哪里: 为什么这比:
class Obj
{
public:
Obj();
Obj(const Obj&);
Obj& operator = (const Obj& other);
};
Obj o;
Obj o2 = o;
那么我应该什么时候真正使用 Prototype?
【问题讨论】:
-
代码
class ConcretePrototype必须由: public Prototype代码扩展 -
@πάνταῥεῖ 一个是灰色的。另一个,如果你有任何品味的话,不是。 :)
标签: c++ design-patterns