如果我们可以在客户端创建直接对象,为什么我们需要设计抽象工厂模式?

时间:2013-11-25 05:07:11

标签: .net abstract-factory

我在最近的采访中遇到了这个问题。我搜索了它,但除了“这是创造性的模式,我们可以创建集中的对象”这个答案我无法得出结论。正如我解释的那样,他问我但是“我们可以直接在服务器类的客户端类中创建对象。为什么我应该使用抽象工厂?”

1 个答案:

答案 0 :(得分:1)

正如NoviceProgrammer所说,使用Abstract Factory设计模式意味着使用结果对象的客户端仍然独立于实际的结果对象,因为它只知道它的接口。因此,当需要由Factory端生成新的对象类型时,只要接口保持不变,客户端就不必更改事物以便处理它。

关于wikipedia示例,假设您需要添加一个“LinuxButton”类,供您的应用程序使用。然后,您将创建另一个名为“LinuxFactory”的工厂,实现通用的“GUIFactory”接口。这样,“应用程序”类不需要更改任何内容,以便使用“LinuxButton”的新具体实现。工厂是完成所有工作的工厂,“应用程序”不需要更改。现在想象一下将它扩展到数百个类,你会看到它的价值。

希望我帮忙!