工厂和模式有什么关系?

7

我刚刚在 Stack Overflow 上阅读了一个讨论 Singleton 和 Static Classes 优点的帖子。

有些人提到,模式 X 看起来更像是一个“工厂”,而不是一个 Singleton “模式”。

“工厂”和“设计模式”之间有什么区别?

9个回答

9

1

工厂模式和单例模式是许多设计模式中的一些。

工厂模式可以作为生产对象的单例模式来实现。工厂也可以是一个实例化类,因此不是单例。同样,单例可以是一个工厂,但它也可以是其他东西,比如全局设置管理器或事件注册表。


1
一个“工厂模式”而不是“单例模式”。两者都是设计模式。让我详细解释一下并正确地放置引号。

0

0
你有点理解错了。"工厂模式"也是一种模式,与"单例模式"形成对比。

0

'Factory' 是一种设计模式。根据上下文,你可以在这里看到一些抽象工厂 链接 或者工厂方法 链接 的例子。


0

工厂(Factory)是一种设计模式 :-) 就像单例模式(Singleton)一样。可以认为单例模式是一种工厂模式。它在需要时创建一个对象并使用固定的缓存策略(即一旦创建后始终返回相同的对象),但这纯属学术性质,在大多数关于结构的讨论中可能只会造成混淆。


0
工厂是一种设计模式。基本上,工厂会根据调用类的需求返回一个类。由工厂返回的所有类都应该共享相同的接口,这样您就可以在它们上面调用相同的公共方法(尽管每个类如何实现该方法可能不同)。
这里有一个好链接 http://en.wikipedia.org/wiki/Factory_method_pattern

0
很多答案,但似乎没有一个能够很好地区分这两种模式。让我试着看看是否能更加混淆问题。
Singleton 是一种模式,它限制系统只创建给定类的一个实例。该限制通常通过创建一个工厂来实现,该工厂将创建类的实例(如果不存在)或在后续调用中返回已创建的实例。
工厂用于创建单例和其他情况。它可以用于在许多情况下替换 "new"。其中一个优点是,您可以编写工厂以允许返回要返回的对象类型为 "Set"。这样,您的测试框架就可以设置一个模拟对象而不是真实对象--然后您的系统的其余部分就会使用模拟对象。
另一个情况可能是让工厂根据参数或数据(例如 XML)评估要返回的类型。它们还用于实现依赖注入,其中工厂查看您需要什么并构建对象链来满足这些需求。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接