建造者设计模式和工厂设计模式有什么区别? [关闭]

2023-11-22

Builder设计模式和Factory设计模式有什么区别?

哪一种更有优势,为什么?

如果我想测试和比较/对比这些模式,如何将我的发现表示为图表?


对于设计模式,通常没有适用于所有情况的“更有利”的解决方案。这取决于您需要实施什么。

来自维基百科:

  • 建造者专注于建造一个 逐步复杂的对象。抽象的 工厂强调产品系列 对象(简单或复杂)。 建造者返回产品作为最终产品 步骤,但就摘要而言 工厂关注,产品得到 立即返回。
  • 构建者经常构建一个组合体。
  • 通常,设计是从工厂方法开始的(不太复杂,更多 可定制,子类激增) 并向抽象工厂演进, 原型,或构建器(更灵活, 更复杂)作为设计师 发现哪里更有灵活性 需要。
  • 有时创建模式是互补的:构建者可以使用其中一种 要实现的其他模式 构建了哪些组件。抽象的 工厂、构建器和原型可以 在他们的中使用 Singleton 实施。

工厂设计模式的维基百科条目:http://en.wikipedia.org/wiki/Factory_method_pattern

构建器设计模式的维基百科条目:http://en.wikipedia.org/wiki/Builder_pattern

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

建造者设计模式和工厂设计模式有什么区别? [关闭] 的相关文章

  • 使用状态模式设计在Java中实现通信协议

    如果在其他地方回答了这个问题 我们深表歉意 找不到足够的信息来说服自己最好的方法来做到这一点 我还意识到这是一个冗长的解释 没有代码 但是让我知道我是否应该编写一些示例代码来帮助演示我正在做的事情 基本上 使用 System in out
  • 为什么所有的 Active Record 都讨厌? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 我们是否需要更喜欢构造函数而不是静态工厂方法?如果是的话,什么时候?

    我一直在阅读有效的Java by 约书亚 布洛赫到目前为止 它确实名副其实 第一项就提供了令人信服的理由静态工厂方法 over 构造函数 以至于我开始质疑那些好的旧构造函数的有效性 本书的优点 缺点总结如下 优点 他们有名字 我们拥有全面的
  • 在 Actionscript 3 中实现单例模式类的最佳方法是什么?

    由于 AS3 不允许私有构造函数 因此构造单例并保证构造函数不是通过 new 显式创建的唯一方法是传递单个参数并检查它 我听说过两个建议 一个是检查调用者并确保它是静态 getInstance 另一个是在同一包命名空间中拥有一个私有 内部类
  • 注册模式和注册对象的延迟实例化

    让我们想象一下我们有注册表模式
  • 是否可以将继承应用于 Singleton 类?

    今天面试时遇到一个问题 是否可以在单例类上应用继承概念 我说过 由于构造函数是私有的 因此我们无法扩展该 Singleton 类 他问我的下一件事是在该 Singleton 类上应用继承 因此 我将单例的构造函数设置为受保护的 认为孩子的构
  • 使用“旧”对象引用使用构建器模式创建新对象

    我正在尝试构建器模式 并陷入如何向新创建的对象添加新 属性 的困境 public class MsProjectTaskData private boolean isAlreadyTransfered private String req
  • Javascript 中繁重计算的最佳实践?

    我正在处理客户端脚本 需要进行繁重的计算 例如将大量对象推送到数组中 这会导致 JavaScript 停止响应并且浏览器挂起并发出警报 是否有任何最佳实践或设计模式来处理这些计算 我搜索并找到许多不同的方法来处理这些情况 但解决方案很难实现
  • 就MVC模式而言,Struts 2中使用的Action是什么?

    在Struts2中 控制器将请求分派给Action Action将其传递给后端逻辑 这可以看作是一个非常大的过程 model 处理请求 JSP代表视图 Struts2中如何定义Action 肯定是not一个看法 是控制器还是模型 Strut
  • Javascript 沙箱模式示例实现

    在 Stoyan Stefanov 的伟大著作 JavaScript Patterns 的第 101 页中 他解释了沙箱模式 我非常喜欢他的书 但我真的错过了一些现实生活中的例子 然后更好地理解他所谈论的内容 我正在寻找一个现实生活中的工作
  • 服务层或存储库中的密码哈希等?

    作为 MVC 的最佳实践 在发送到数据库之前处理密码散列 加盐或数据格式化等事务的逻辑应该放在哪里 我读到存储库应该仅用于处理数据访问的逻辑 这是属于服务层的东西吗 控制器 这还重要吗 我倾向于将散列放在存储库层中 如果只是出于实际原因 即
  • STL(标准模板库)中使用的设计模式

    我正在学习STL和设计模式 我想知道是否有任何文档或链接可以解释如何在 STL 中实现设计模式 我做了谷歌但无法获得太多数据 我希望你的意思是 哪些设计模式可以在STL中识别 STL 堆栈是一个容器适配器 适配器是一种设计模式 迭代器也是一
  • 与竞争的消费者顺序处理消息

    Problem 我以特定顺序 FIFO 在队列上接收消息 比如订单 我的队列中有竞争的消费者 为了进一步增加复杂性 消费者可能只对订单的特定版本感兴趣 具体取决于其状态 例如版本 1 版本 2 和版本 5 订单版本号在订单上可用 但不能用于
  • 我对 MVVM 模式有一些疑问

    我叫 Jes s 来自西班牙 是一名 NET 开发人员 几天前我刚刚发现了这个伟大的网络 我有一些关于 MVVM 模式的问题 如果您能回答我 我将很高兴 我三个月前开始使用 WPF 并且学习了 MVP 模式 MVP 非常好 因为您可以很好地
  • AngularJS 服务并承诺最佳实践

    我有一个 AngularJS 应用程序services 调用 http资源并返回promise我在控制器中解决了这个问题 这是我正在做的事情的示例 app service Blog function http q var deferred
  • 策略模式还是命令模式?

    假设我有一个金融交易列表 我需要针对这些交易执行一系列验证规则 一个例子是我有一笔购买产品的交易 但是首先我需要验证交易中的帐户是否有足够的可用资金 产品没有售完等 由于这些规则 交易将是标记为拒绝 并应指定错误代码 当然 我正在考虑用一个
  • Java中单例的其他方式[重复]

    这个问题在这里已经有答案了 只是我在考虑编写单例类的其他方法 那么这个类是否被认为是单例类呢 public class MyClass static Myclass myclass static myclass new MyClass pr
  • 工厂模式但带有对象参数

    采用以下经典工厂模式 public interface IPizza decimal Price get public class HamAndMushroomPizza IPizza decimal IPizza Price get re
  • java异常处理策略[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用接口或函数对象进行回调? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在面向对象中 通常使用接口来实现回调 粗略示例 class Message class IMsgProcessor public virtual

随机推荐

  • 如何在 Haskell 中处理无限的 IO 对象列表?

    我正在编写一个从文件列表中读取的程序 每个文件要么包含到下一个文件的链接 要么标记它是链的末尾 作为 Haskell 的新手 处理这个问题的惯用方法似乎是为此目的提供一个可能文件的惰性列表 我有 getFirstFile String gt
  • WPF - 如何强制命令通过其 CommandBindings 重新评估“CanExecute”

    我有一个Menu其中每个MenuItem在层次结构中有其Command属性设置为RoutedCommand我已经定义了 相关的CommandBinding提供评估的回调CanExecute它控制每个的启用状态MenuItem This al
  • 闭包如何捕获之前调用的值?

    typealias IntMaker Void gt Int func makeCounter gt IntMaker var n 0 Line A func adder gt Integer n n 1 return n return a
  • 禁用 JavaDocs 的注释

    是否有一个注释来声明某个方法即使是公共的也不会包含在JavaDocs中 就像是 nojavadocs public void foo 附 我理解这里关于 API 的要点 但这些方法只是 不受支持 它们可以工作 并且必须公开才能从其他包访问
  • C++ 中的多线程图像处理

    我正在开发一个处理不同尺寸图像的程序 许多这些操作从输入读取像素数据并写入单独的输出 例如模糊 这是在每个像素的基础上完成的 此类图像映射对 CPU 的压力很大 我想使用多线程来加快速度 我该怎么做 我正在考虑为每行像素创建一个线程 我有几
  • 错误:自动模块无法与 jlink 一起使用: - Maven 与 JavaFX

    我通过 Maven 存储库选择了 Apache Commons IO JSerialComm 和 Ini4J 库 但是当我尝试通过创建图像时mvn javafx jlink我收到此错误 INFO javafx maven plugin 0
  • 使用汇编语言进行 128 位移位?

    在现代 Intel CPU 酷睿 i7 sandybridge 上进行 128 位移位的最有效方法是什么 类似的代码在我最内层的循环中 u128 a N void xor for int i 0 i lt N i a i a i a i g
  • 创建具有多个表的 rdlc 报告(一对多关系)

    所以 我是 rdlc 的新手 实际上也是一般报告 我有一个表与另一个表具有一对多关系 并且我试图在 rdlc 报告中将它们表示为多个表对于每个项目 注意 这些表最初是使用实体框架代码优先创建的 这是两个表 以及父级 现在 通常如果我只有 Q
  • WPF XAML 中的 My.Resources?

    有没有办法通过 Xaml 访问 My Resources 像这样
  • 在 List 上对 Datagridview 数据源进行排序,其中 T 是匿名的

    一个比较简单的问题 我有一个 datagridview 它所做的只是显示统计信息 没有行的编辑 添加 删除 datagridview 绑定到一个列表 我想要实现的只是让用户能够对列进行排序 class Market public int L
  • for-in JavaScript 语句中的 IE8 错误?

    我想我在 IE IE8 处理 for in javascript 语句时发现了一个错误 经过几个小时将其归结为一个小示例后 看起来 IE 专门跳过了 for in 循环中名为 toString 的任何属性 无论它是在原型中还是对象的 自己的
  • MVC4 Action 返回不带 null 的 JsonResult

    我有一个为特定类的对象返回 JsonResult 的操作 我用一些属性装饰了这个类的属性以避免空字段 类的定义是 private class GanttEvent public String name get set JsonPropert
  • 如何使用 Python ElementTree 创建

    我尝试使用这个问题的答案 但无法使其工作 如何用Python的ElementTree创建 虚拟根 这是我的代码 import xml etree cElementTree as ElementTree from StringIO impor
  • 如何在 Laravel 中对对象数组进行分页?

    我正在使用 Laravel 4 2 构建一个应用程序 我有一个模型units另一个用于users和数据透视表user units 该应用程序中的每个用户都可以选择一个单元并将其添加到他最喜欢的列表中 然后他可以将该单元及其信息作为广告发布
  • 以编程方式获取 DLL 的版本号

    是否可以通过编程方式从任何 NET DLL 获取版本号 如果是 怎么办 如果 dll 是这样的话 这有效 net or Win32 仅当 dll 为 net 时 反射方法才有效 另外 如果使用反射 则需要将整个 dll 加载到内存中 以下方
  • 如何使用 C# 检查程序安装位置

    我需要通过程序名称 出现在 添加或删除程序 中的名称 检查程序的安装位置 使它适用于所有语言的最佳方法是什么 查看注册表 HKEY LOCAL MACHINE SOFTWARE Microsoft Windows CurrentVersio
  • 无法在c#中运行Google Cloud PubSub,DLL问题

    我正在努力将 Google Cloud PubSub 集成到我的 c 项目中 我使用 NuGet 进行安装1 0 0 beta11 完全没有错误 当我运行我的项目并到达使用 pubsub 的代码时 出现以下错误 An unhandled e
  • 使用 firestore 进行多查询和分页

    我正在尝试使用 firestore 实现多查询和分页 但是一旦我将 添加到查询中 光标就不起作用 working example the doc id i save as propery on the doc ref where categ
  • 跨平台命令行脚本(例如.bat和.sh)

    我注意到 Windows 7 可以像执行 bat 文件一样执行 sh 文件 这让我想知道是否可以编写一个 sh 文件以便可以在 Windows 中执行andLinux 比如说bash 我首先想到的是编写一个 if 语句 以便 Windows
  • 建造者设计模式和工厂设计模式有什么区别? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 Builder设计模式和Factory设计模式有什么区别 哪一种更有优势 为什么 如果我想测试和比较 对比这些模式 如何将我的发现表示为图表 对于设计模式 通常没有适用于所有情况