使用create()方法代替类构造函数的好处?

时间:2020-05-05 20:05:53

标签: c++

this code中,class Window具有create()方法。 Windows操作系统的窗口类为here。为什么这样做而不是使用构造函数,从而省去了auto win = Window::create()的麻烦?

我相信这样做已经完成,因此他们可以返回nullptr。我错了吗?

2 个答案:

答案 0 :(得分:1)

Window::create是“工厂功能”。在C ++中有时使用工厂函数代替构造函数的主要原因是,构造函数T::T只能创建类型为T的对象,而工厂函数T::create可以返回指向{ {1}},它可能潜在地指向派生类。创建的实际类型可以取决于工厂函数的参数。

答案 1 :(得分:1)

布莱恩是正确的。 <transition name="slide-in-down" appear appear-active-class="animated slideInDown"> <div> element you are apply the transition to</div> </transition> factory method的示例。

“工厂”在许多情况下都可能有用。详细说明:

https://en.wikipedia.org/wiki/Factory_(object-oriented_programming)

在以下情况下可以使用工厂

  • 对象的创建使得没有大量重复代码就无法重用。
  • 对象的创建需要访问不应包含在组成类中的信息或资源。
  • 必须集中管理所生成对象的生命周期,以确保应用程序中行为的一致性。