首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >工厂模式与FactoryMethod模式

工厂模式与FactoryMethod模式
EN

Stack Overflow用户
提问于 2012-04-01 16:46:50
回答 4查看 1.3K关注 0票数 1

有人能告诉我为什么引入FactoryMethod设计模式吗?因为我的问题是,使用工厂模式本身也可以达到同样的效果吗?

例如,如果我看到工厂模式和FactoryMethod模式之间的区别,工厂模式返回具体的IMplementation,而FactoryMethod模式返回工厂对象作为其返回类型??

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

EN

回答 4

Stack Overflow用户

发布于 2012-04-01 17:48:02

简而言之:

Factory Method是一种设计模式,它向代码的其余部分“隐藏”了具体类型的实例化,从而提供了松散耦合。

Abstract Factory是一个设计模式,它被引入来为提供不同类型的工厂,这些工厂负责创建一组特定的具体类型。因此,您可以在抽象工厂之间切换,并最终获得代码中对象的不同具体实例。

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

票数 1
EN

Stack Overflow用户

发布于 2012-04-01 16:56:02

正如你可以在wiki上读到的“抽象工厂模式,一种经常使用工厂方法实现的模式”。

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

设计模式经常/总是彼此联系在一起,通过这种方式,它们向我们展示了模式的概念。

问候卢卡斯。

票数 0
EN

Stack Overflow用户

发布于 2012-04-01 17:02:44

AbstractFactory模式是另一个级别的抽象。用户不知道他将获得的对象的类型,它对此也不感兴趣。AbstractFactory决定使用哪种方法来创建用户将收到的具体对象。

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

如果我在方法工厂中请求一个按钮,我需要知道我想要的是LinuxButton、WindowsButton还是OSXButton。在AbstractFactory中,我请求一个按钮,我收到一个按钮...AbstractFactory将决定按钮是如何创建的,知道我们的操作系统。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9963090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档