问题标签 [factory-pattern]

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 投票
2 回答
575 浏览

iphone - 如何在可可(iPhone)中为核心数据访问制作数据工厂的示例?

我一直在慢慢学习 iPhone 开发,似乎一直在碰壁,我无法弄清楚如何以正确的方式做我想做的事情:(

基本上,我想要一个类来处理与数据层的所有交互,例如,从数据存储中获取一些对象列表的可变数组。

这在你有垃圾收集器的其他语言中是非常微不足道的,但在 iPhone 上的 Objective-C 中,我不知道该怎么做。

这是我们正在创建的 DataFactory 类的示例方法。请注意关于我们不确定何时发布的评论......

调用代码,与我的评论相关:

0 投票
2 回答
324 浏览

php - PHP中的工厂类,没有__construct?我使用什么方法名称?

我有一个我正在用 PHP 制作的工厂类。每个实例代表数据库表中的一行。

由于我将处理数十个数据库行,因此让每个实例在实例化时进行选择是很愚蠢的。所以我有一种方法可以将值转储到对象中,以便与返回大量行的数据库查询结合使用。

但有时,我还想让对象在查询中查找所有值。所以,我将有另一种方法,它将主键作为参数,并从数据库查询中查找值。

所以看起来在这两种方法之间,我真的不需要一个__construct方法。

这种模式有没有比“工厂”更具体的名称?我应该怎样称呼这两种构造对象的不同方法——这些方法有常用的名称吗?

0 投票
4 回答
1741 浏览

c# - C# 泛型和抽象工厂模式 - 或做类似事情的某种方式

我正在尝试为我的应用程序编写一种可扩展的数据层“存储库”之一是我的抽象存储类的内存实现

“StorableEntity”抽象类是:

我有一个名为“InMemoryStore”的具体 Store 类,如下所示:

现在,这里的“U”类型可以是字符串、整数、Guid 等……(大多数时候它可能是整数)

我的想法是创建类似这样的 IUIDGenerator 的东西:

在上面的“InMemoryStore”中,我将创建一个 IUIDGenerator 实例,传入存储字典键集合,并调用“Create”方法以返回所需类型的唯一标识符。

例如,我可以有一个像这样的 IntUIDGenerator 类(它可以作为一种增量数字生成器,基于字典键中已经存在的数字)

实际问题: 我需要做的是在 InMemoryStore 中识别 U 的类型(标识符的类型)并能够动态选择所需的 IUIDGenerator 的具体实现——我该怎么做?

我想过有一种类工厂模式 - 将所有可用的 UIDGenerators 加载到字典中......但它们都可以有不同的类型?

有没有更好的方法来解决这个问题?

另外,我知道我的问题的标题可能有点偏离 - 如果有人有更好的建议,请随时发表评论,我会改变它。

0 投票
2 回答
164 浏览

design-patterns - 如何使构造函数返回子类对象

我刚刚读了一本关于面向对象编程模式的书。它描述了一种工厂模式,您可以通过该模式调用对象的静态工厂方法,并且该对象将返回预期类型的​​新对象,但它将被适当地子类化。

我的问题,这个功能可以由类的构造函数提供吗?如果有怎么办?我不是为什么?想象一下,我有一个名为 VillagePerson 的类,它有子类 PoliceOfficer、NativeAmerican、Cowboy、Biker、ConstructionWorker 和 Sailor。构造函数获取人员的文本字符串描述,对其进行解析,然后返回我想要的特定类型的人员。这仅适用于静态工厂方法吗?

0 投票
2 回答
2236 浏览

design-patterns - 工厂方法模式避免基于条件逻辑的对象实例化

在像下面这样需要基于某些条件逻辑来实例化对象的场景中,工厂方法模式是否可以帮助避免客户端代码由于 if/elseif 条件的数量而变得混乱(如果越来越多,这也将是维护的噩梦由于逻辑的不同变化,需要创建产品)。

或者是否有任何其他设计模式可以拯救?

0 投票
4 回答
9864 浏览

c# - 为什么要使用工厂方法来创建对象

可能的重复:
工厂模式。什么时候使用工厂方法?
为什么存在静态 Create 方法?

虽然我知道什么是工厂设计模式。但我无法理解使用它有什么好处。为什么要使用工厂设计模式创建对象。

0 投票
7 回答
21975 浏览

c# - 工厂模式但带有对象参数

采用以下经典工厂模式:

如果一个(或多个)Concrete Pizzas 需要特定于构造时的具体实现的参数怎么办。例如,假设 HamAndMushroom 工厂需要一个名为 MushroomType 的参数,并且需要此参数来实例化对象?

0 投票
3 回答
8892 浏览

ruby - 在实例化时将类转换为子类

我正在编写一个用于查询Mediawiki API的框架。我有一个Page代表 wiki 上的文章的类,我还有一个Category类,它具有 Page更具体的方法(比如能够计算类别中的成员数量。我还有一个Page#category?方法Page通过查询 API 来确定文章的命名空间,确定实例化对象是否真的代表 Mediawiki 类别页面。

我想要做的是能够检测我的框架的用户是否尝试使用 Page 对象(即。Page.new("Category:My Category"))实例化 Mediawiki 类别,如果是,则直接从构造函数实例化一个Category对象,而不是一个对象。PagePage

在我看来,这应该是可能的,因为它让人想起 Rails 中的单表继承,但我不确定如何让它工作。

0 投票
4 回答
3805 浏览

java - log4j中使用的模式是什么

我需要了解 log4j 库中使用的设计模式。由于它为各种类提供记录器,它是一个工厂吗?

非常感谢任何更多关于这些的输入/指针..

0 投票
3 回答
632 浏览

java - 设计模式名称:是工厂吗?

下面的类显示了类似于真实用例的内容。它总是为同一个线程返回同一个实例。

你会怎么称呼它?是“工厂”吗?“价值持有者”?“线程本地存储”?