首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >工厂与原型-什么时候使用?

问工厂与原型-什么时候使用?
EN

Stack Overflow用户
提问于 2013-11-18 08:35:31
回答 6查看 11.2K关注 0票数 12

工厂和原型都有助于创建对象。在设计新应用程序时:

  1. 您什么时候会使用工厂模式而不是原型模式?
  2. 您什么时候会使用原型模式而不是工厂模式?

我很困惑该在哪里使用哪一种。

我知道这可能是非常具体的问题,但有没有一般的指导方针?

有什么想法?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-11-18 08:53:13

我将假设您在讨论抽象工厂设计模式(不应与Factory方法混淆,后者是另一种创造性设计模式)。

两者之间的区别并不太明显,因为它们可以重叠并以互补的方式使用。由于原型创建了一个自身的克隆,包括其所有属性,它通常由一个抽象工厂创建一次,然后为每个必需的对象克隆(这将不需要再次填充它的字段)。

因此,Prototype避免了不必要的“新”调用,因为对象是克隆的,而不是创建的。然而,在大多数现代OOP语言中,我不会说这是件大事。我的两分钱:如果你没有看到真正的区别,就继续使用你习惯实现的那个(可能是抽象工厂)。

票数 16
EN

Stack Overflow用户

发布于 2013-11-18 14:18:34

在我看来,虽然两者都是创造模式,但工厂模式和原型模式在不同的上下文中使用。

工厂模式用于引入对象之间的松散耦合,因为工厂将处理所有对客户端隐藏的实例化逻辑。

另一方面,当创建对象的成本很大时,可以复制现有实例而不是创建新实例时使用Prototype模式。

票数 8
EN

Stack Overflow用户

发布于 2013-11-18 09:13:39

Prototype被认为是一种优化工厂(复制而不是创建)或执行依赖注入(为特定实现/配置配置工厂)的方法。

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

https://stackoverflow.com/questions/20043279

复制
相关文章

相似问题

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