gpt4 book ai didi

c++ - 原型(prototype)模式

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:12:08 25 4
gpt4 key购买 nike

根据维基百科原型(prototype)模式是:原型(prototype)模式是一种在软件开发中使用的创建型设计模式,当要创建的对象类型由原型(prototype)实例确定时,原型(prototype)实例被克隆以产生新对象。此模式用于:

  1. 避免在客户端应用程序中使用对象创建者的子类,就像抽象工厂模式那样。

  2. 避免以标准方式(例如,使用 new 关键字)创建新对象的固有成本,因为对于给定的应用程序来说成本过高。

    <

我在 C++ 中看到了这种模式的某些演示代码,它们都使用了复制构造函数。任何人都可以解释第二点如何应用(在一般情况下以及在 C++ 的上下文中),因为我们无论如何都在克隆函数中使用复制构造函数。如果可以在没有复制构造函数的情况下完成,那么示例代码片段会很棒。

最佳答案

无需动态分配即可复制。例如,这是一个只发生在本地范围内的克隆:

Foo prototype;

void local()
{
Foo x = prototype; // first copy
x.mutate();
Foo y = x; // another copy
}

从不使用动态分配。

确实 return new Foo(*this); 制作了一个拷贝,但更重要的是 that 对象是动态分配。 就是您文章中提到的成本。

关于c++ - 原型(prototype)模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11720037/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com