问题标签 [abstract-factory]

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 投票
14 回答
73689 浏览

java - 工厂模式和策略模式有什么区别?

谁能解释工厂模式和策略模式之间的区别?

对我来说,除了一个额外的工厂类(在工厂模式中创建一个产品对象)之外,两者看起来都一样

0 投票
19 回答
250193 浏览

design-patterns - 工厂和抽象工厂设计模式之间的基本区别是什么?

工厂模式和抽象工厂模式之间的基本区别是什么?

0 投票
2 回答
499 浏览

.net - 是静态工厂在 codecampserver 中一个众所周知的模式?

CodeCampServer 源代码包含一个通用的StaticFactory

我推测这是框架如何与依赖注入良好配合的机制的关键部分。

其子类使用它的 DefaultUnconfiguredState 来提供对它们自己的默认未配置状态的静态访问,依赖解决机制可以用工作的东西代替它。

我找不到任何有关此的文档...

上有很好的解释吗?(我正在等待亚马逊的送货......)

...或者其他人可以提供一个很好的评论这是什么以及我是否明智地采用这种模式(如果它是一个......)?

更新

由于 Jeffrey Palermo 回答了这个问题,我看到在 MVC2 in Action 的(正在进行的)手稿中,使用用于定位存储库以保持域层无知的工厂讨论和说明了这种模式/风格持久性问题。(见第 23 章)。

默认情况下,使用此工厂会引发异常:

“如何创建存储库的知识不属于工厂。这个工厂仅代表返回存储库的能力”

该示例可以使用几种机制之一来初始化存储库接口的具体实现。在书中的示例中,为了简单起见,他们选择不使用 IOC 容器,并在某些启动逻辑中明确提供它。

“重要的是,核心项目和 UI 项目都不应引用基础设施项目或本质上纯粹是基础设施的库。我们将 NHibernate 完全放在一边,这样应用程序的其余部分就不会关心数据访问正在发生”

关于这一新章节中示例代码的最后一点要注意的是,工厂不再是静态的(至少就面向外部的接口而言不是)。

更新 2

巴勒莫先生在博客上写了更多关于这种特殊风格的抽象工厂(参见 OrderShipperFactory 的实现)。

我也可以考虑“手动依赖注入”(鲍勃叔叔)。

更新 3 - 2016 年 3 月

这里还有另一个例子,尽管 Jeffrey 明确表示这是演示代码,并且注释表明这将在 Mark Seeman 所称的组合根中进行配置(即在应用程序启动时)

我在 Jeffrey 的文章“洋葱架构:第 4 部分 - 四年后”中发现了这一点

0 投票
3 回答
11003 浏览

design-patterns - 工厂、抽象工厂和工厂方法

我真的对这三个术语感到困惑。

我的理解是:

  • 在工厂模式中,没有具体的工厂。工厂根据参数构建新对象。

  • 在抽象工厂模式中,有多个具体工厂。客户必须明确地创建不同的具体工厂。

那正确吗?

其他的区别是什么?

此外,什么是工厂方法模式?和工厂模式一样吗?

0 投票
15 回答
85865 浏览

design-patterns - 为什么我们需要抽象工厂设计模式?

大多数定义说:

抽象工厂为创建相关对象族提供了一个接口,而无需指定它们的具体类

抽象工厂模式有什么用,因为我们可以通过创建具体类本身的对象来完成任务。为什么我们有一个创建具体类对象的工厂方法?

请提供我必须实现 abstractFactory 模式的任何现实生活示例?

0 投票
3 回答
226 浏览

c# - codecampserver 中的 StaticFactory 是众所周知的模式吗?

更新:这是 Codecampserver 中的 StaticFactory 是众所周知的模式的副本吗?

0 投票
1 回答
675 浏览

java - 抽象工厂实现

我已经实现了一个像这样的抽象工厂

具体工厂必须调用此抽象工厂构造函数,导致每个具体实现都在FACTORIES映射中注册。我有点担心在构造函数中引用this,因为在构造函数的执行返回之前,它的值似乎this应该是未定义的。

谢谢,唐

0 投票
2 回答
406 浏览

abstract-factory - 根据 IoC 和抽象工厂模式进行类设计

为抽象工厂方法提供值的正确方法是什么?

例如。

在示例中,存储库是在创建工厂时通过构造函数注入的,但我可以将存储库移动到 IFactory 接口

什么被认为是“正确”的做法?设计抽象工厂时应该如何解释?

0 投票
1 回答
999 浏览

generics - 将通用 MVP 模式与抽象工厂模式相结合

有什么方法可以解决我下面的代码吗?我有点卡住了。
我如何使用工厂来创建通用演示者,甚至没有非通用基类是否可能?

}

0 投票
6 回答
6963 浏览

design-patterns - 抽象工厂、工厂方法、生成器

似乎这是一个骗局,但请耐心等待 - 我保证我已经阅读了相关的帖子(和GOF 书)。

在我阅读完所有内容之后,我仍然不清楚何时使用抽象工厂、工厂方法或构建器。我相信,在我看到一个问题的简单示例后,它最终会深入人心,这个问题最好由构建者解决,而使用抽象工厂显然是愚蠢的。

你能提供一个简单的例子,你会清楚地使用一种模式而不是其他模式吗?

我知道如果这个例子太简单,它可能归结为一个意见问题,但我希望如果有人可以,那个人就是这样。

谢谢。