【发布时间】:2012-07-30 10:54:25
【问题描述】:
根据维基百科原型模式是: 原型模式是在软件开发中使用的创建型设计模式,当要创建的对象类型由原型实例确定时,原型实例被克隆以生成新对象。此模式用于:
避免在客户端应用程序中使用对象创建者的子类,就像抽象工厂模式一样。
避免以标准方式(例如,使用
new关键字)创建新对象的内在成本,因为它对于给定的应用程序来说过于昂贵。
我在 C++ 中看到了这种模式的某些演示代码,它们都使用了复制构造函数。 任何人都可以解释第二点是如何应用的(通常以及在 C++ 的上下文中),因为我们无论如何都在克隆函数中使用复制构造函数。如果它可以在没有复制构造函数的情况下完成,那么示例代码 sn-p 会很棒。
【问题讨论】:
-
根据定义克隆涉及复制,因此不涉及复制构造函数或赋值运算符的唯一方法是具有手动复制所有字段的特殊功能。虽然这可能会调用字段的复制构造函数。
标签: c++ design-patterns prototype-pattern