在this code中,class Window
具有create()方法。 Windows操作系统的窗口类为here。为什么这样做而不是使用构造函数,从而省去了auto win = Window::create()
的麻烦?
我相信这样做已经完成,因此他们可以返回nullptr
。我错了吗?
答案 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)
在以下情况下可以使用工厂
:
- 对象的创建使得没有大量重复代码就无法重用。
- 对象的创建需要访问不应包含在组成类中的信息或资源。
- 必须集中管理所生成对象的生命周期,以确保应用程序中行为的一致性。