2013-11-25 16 views
0

我在最近的采访中遇到了这个问题。我GOOGLE了它,但除了“这是创建模式,我们可以创建集中对象”这个答案,我不能断定。正如我解释过的那样,他问我,但“我们可以直接在服务器类的客户端类中创建对象,为什么我应该使用抽象工厂?”为什么我们需要设计抽象工厂模式,如果我们可以在客户端创建直接对象?

+1

看看:http://en.wikipedia.org/wiki/Abstract_factory_pattern。基本上,客户端可以使用通用接口来使用对象,而不必关心创建的实际对象。 – NoviceProgrammer

回答

1

正如NoviceProgrammer所说,使用Abstract Factory设计模式意味着使用结果对象的客户端保持独立于实际结果对象,因为它只知道其接口。因此,当工厂方需要生成新的对象类型时,只要界面保持不变,客户端就不必为了处理它而改变它。

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

希望我帮了忙!

相关问题