问题标签 [gang-of-four]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3391 浏览

design-patterns - 设计模式不在四人组中?

我们都知道关于设计模式的好书《四人帮》和 Fowler 的《企业模式》。

我想提出这个维基化的问题来收集不寻常的软件模式,用于模糊和好的情况,跨越过程编程、函数式编程、OO 和 AO 编程。给你的想象力和体验充分的自由。

有点相关:https ://stackoverflow.com/questions/37337/beyond-gof-design-patterns

0 投票
3 回答
1121 浏览

java - 面向方面编程中的四组模式使用?

我正在研究 SOA 主题,并且试图了解四人小组对方面方向的看法。我还需要在 AOP 范式中实现其中一种模式。

为此选择的最佳模式是什么?

0 投票
3 回答
1809 浏览

ios - 四种设计模式——Objective C 示例代码?

我很好奇是否有人知道任何可下载的用于四种设计模式的Objective C示例代码?我正在寻找工作示例 XCode 项目,不介意付费!

顺便说一句,如果您正在寻找其他语言,您可以从这里开始寻找 Java或从这里开始寻找各种语言

0 投票
3 回答
93989 浏览

java - 什么是四人帮设计模式

我最近才知道 Java 中有一种设计模式,称为四人组 (GoF)。我无法理解它是什么以及它的用途。任何人都可以让我清楚这一点吗?提前致谢。

0 投票
1 回答
3351 浏览

javascript - JavaScript 中的单例模式

下面是一个非常流行的 JavaScript 单例模式实现示例:

我已经考虑了一段时间,当我们可以用这个简单的代码实现相同的结果时,并没有真正理解这种复杂性的需要:

我在这里忽略了什么吗?

0 投票
1 回答
337 浏览

testing - 自动化框架中的四种模式使用

我想知道在开发自动化框架时,四种设计模式中的哪一种可能有重要的应用。

例如,页面对象模型(不是 Gof 模式顺便说一句)是最常用的设计模式之一,在开发自动化框架时会被合并。

在类似的情况下,我想知道通常考虑哪些 Gof 模式。

最后,它可以用于任何类型的自动化框架(关键字、数据驱动等)。

谢谢。

0 投票
0 回答
138 浏览

design-patterns - 这些都是抽象工厂模式吗?

我认为抽象工厂模式的最初用途是当您想要创建一系列相关对象时。这是四人帮 (GoF)和本教程中描述的内容:http ://www.oodesign.com/abstract-factory-pattern.html

我还经常看到抽象工厂模式可用于依赖注入的帖子,特别是用于注入在运行时计算出来的值。这里给出的抽象工厂模式的所有用法似乎都指的是这种方法:我们为什么需要抽象工厂设计模式?

这两个实际上是相同的模式,实现完全相同,还是它们都具有相同的名称,因为它们都使用了抽象工厂?即使它们都以相同的方式实现,也有其他模式具有相似的实现(例如状态和策略)但名称不同,因为它们具有不同的动机,由于创建抽象的原因,这里也应该是这种情况工厂在这两种情况下是完全不同的吗?

0 投票
3 回答
1545 浏览

design-patterns - 使用抽象工厂的缺点以及解决它的模式

我在面试中遇到了以下问题,我在谷歌上找不到任何解决方案或堆栈溢出。我不知道这真的是一个有效的问题(因为我没有得到任何背景。他在说什么背景)??

我被要求说出抽象工厂模式的众所周知的问题以及哪些模式解决了这个问题。

那么任何人都可以帮助我弄清楚那个问题到底是什么(秘密)

抽象工厂设计模式的缺点是什么?

我浏览过这个链接,但不知道还有哪些其他模式解决了抽象工厂的缺点。

0 投票
2 回答
115 浏览

java - 设计模式 - 胖适配器

我们已经实现了适配器设计模式,其工作如下:

  1. 充当服务和数据访问层之间的联络人。
  2. 将原始数据(来自数据源、内部或外部)转换为特定领域的数据。进行必要的验证和按摩。
  3. 有时,进行 DAO 调用可能取决于输入参数中不易获得的数据,或者可能需要根据输入数据进行额外的服务调用。换句话说,适配器不能总是在服务和 DAO 之间进行 1:1 的映射。它可以根据输入参数将来自服务的相同调用映射到不同的 DAO 调用。

第 3 项开始让我担心,因为适配器变得比我最初想象的要复杂。我不知道修剪适配器的设计模式。有吗?建议?

0 投票
1 回答
205 浏览

c++ - 如何使用 boost::flyweight 作为 GOF 模式?

我不明白如何boost::flyweight用作 GOF 模式。某处是否存在示例?

例如,我希望它以下列方式使用。必须有一些轻量级容器,其中包含“胖”对象。这个容器可以为某些对象提供一些轻量级的“持有者/描述符”。我可以将描述符存储在某个容器中。

我不明白如何从boost::flyweight.