工厂模式与FactoryMethod模式

时间:2012-04-01 08:46:50

标签: java design-patterns

有人可以告诉我为什么会引入FactoryMethod设计模式吗?我的问题是同样可以使用工厂模式本身来解决?

例如,如果我看到Factory Pattern和FactoryMethod Pattern之间的区别,Factory Pattern将返回Concrete IMplementation,其中FactoryMethod Pattern返回Factory对象作为其返回类型??

请告诉我为什么要引入FactoryMethod?

4 个答案:

答案 0 :(得分:1)

简而言之:
Factory Method是一种设计模式,可以从其他代码中“隐藏” 具体类型 的实例化,从而提供松耦合。

Abstract Factory是一种设计模式,用于提供不同类型的工厂负责创建一组特定的具体类型。因此,您可以在抽象工厂之间切换,从而最终获得代码中不同的具体对象实例。

所以Abstract Factory是一个进步,即Factory Method的生成。在简单的项目中,后者就足够了。在具有复杂层次结构的项目中,需要Abstract Factory

答案 1 :(得分:0)

正如你可以阅读wiki'抽象工厂模式,一个经常使用工厂方法实现的模式'。

查看此图片http://upload.wikimedia.org/wikipedia/commons/a/a7/Abstract_factory.svg

设计模式通常/始终相互连接,这样他们就向我们展示了模式概念。

关心卢卡斯。

答案 2 :(得分:0)

AbstractFactory模式是另一个抽象层次。用户不知道他将获得的对象类型,并且对此不感兴趣。 AbstractFactory决定使用哪个方法创建用户将接收的具体对象。

在方法工厂中,用户决定使用哪种方法创建对象并知道他得到了什么。但这并不总是与他有关。

如果我在Method Factory中请求一个按钮,我需要知道我是否需要LinuxButton或WindowsButton或OSXButton。在AbstractFactory中,我请求一个按钮,我收到一个按钮......而AbstractFactory将决定按钮的创建方式,知道我们的操作系统。

答案 3 :(得分:0)

根据对抽象工厂的理解,当您拥有可以创建一系列对象的工厂时,将使用抽象工厂模式。虽然有工厂类的抽象。

如果工厂方法对工厂类有抽象,它会生成一组产品对象。