问题标签 [factory-method]

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 回答
211 浏览

spring - 如何注入对象的类,而不是对象本身

我正在尝试注入一个类列表。我想要一个类列表,而不是对象。

我的课看起来像这样:

我的 spring 配置文件(我没有使用注释而是 xml)是

但是列表 codeList 没有被填充。它最终成为一个空对象。谢谢您的帮助。

0 投票
1 回答
857 浏览

c# - 以类型泛型/不可知的方式实现泛型方法的最佳方法

假设我们有一个带有这样签名的泛型方法:

我将类型约束设置为,IConvertible以便此方法可以消化简单的值类型以及字符串。让我们暂时忘记枚举也可以提供......

我想避免这种会检查实际参数类型以执行正确处理的实现。

这肯定有点工厂方法的味道,它必须调用特定的实现提供者,但这仍然需要类型检查。

对于这种情况,您建议最好(希望是通用方法)是什么?

为什么是通用方法?

我决定有一个通用方法,所以它总是返回正确的类型,而无需在调用代码中强制转换方法返回。

0 投票
3 回答
258 浏览

java - 这是什么设计模式?

我阅读了有关FactoryMethodAbstractFactory的 Wikipedia 文章,但以下代码似乎不适用于任何地方。有人可以向我解释以下模式是什么,或者它是否是反模式?

假设用户使用 html 页面上的单选按钮选择付款方式,并且 gatewayId 派生自单选按钮值。

我看过这样的代码,并认为这是 AbstractFactory 模式,但在阅读了 Wikipedia 文章后,我有疑问。

0 投票
2 回答
725 浏览

java - 如何使用 Spring 进行参数化依赖注入?

我想知道如何使用 Spring 依赖注入解决以下问题:

鉴于我有一个Transactions不同类型的列表,我需要根据它们的TransactionType. 所以我有一个TransactionController这样的TransactionService

在不使用 Spring IoC 的情况下,我将使用简单工厂模式来返回基于 Type 枚举的实现:

我怎样才能实现相同的注入TransactionService?我不能使用@Qualifier注释,因为实现取决于TransactionType. 我偶然发现 spring 文档中的一篇文章显示了使用工厂方法进行实例化,但我不知道如何将参数传递给它。

我相信我可能不得不对 Spring IoC 使用不同的设计。我想因为我一直使用简单工厂、工厂和抽象工厂模式,我看不出有什么不同的方法来解决这个问题……</p>

有人也可以为我格式化吗?android 应用程序似乎没有这样做,对不起!

0 投票
1 回答
555 浏览

c++ - 使用右值引用和简单工厂

我最近了解std::movervalue参考,想知道我对它们的使用是否既合适又有效。

考虑这个简单的类,它只存储表示像素Image的值数组。unsigned char(请注意,实际上有比单个字符数组更多的成员,但为了便于阅读,我在此处进行了简化。)

现在考虑一个ImageFactory类的这个静态方法,它接受一个文件名 a.png并返回一个Image填充了适当像素值的对象。

最后,它们一起在代码中使用,如下所示:

我正在使用rvalue引用来大概摆脱复制可能是大量像素值的任何时间。因为工厂创建的矢量和图像是临时的,它们可以移动。

我的问题是,我的实现是否有意义,如果它没有根本性的缺陷,是否可以进一步改进?

0 投票
2 回答
75 浏览

design-patterns - 这个工厂方法图中的“anOperation()”是什么?

我正在学习工厂方法模式,它的维基百科页面有下图:

http://pl.wikipedia.org/wiki/Plik:Factory_Method_UML_class_diagram.svg

这很简单,所以我什么都懂,除了一件事——那是什么神秘的anOperation()方法?它有什么作用?更重要的是——它是模式的一部分吗?

0 投票
1 回答
223 浏览

design-patterns - 工厂方法和抽象工厂模式中的客户端与创建者

Factory Method此页面描述了和之间的一个重要区别Abstract Factory

http://architects.dzone.com/articles/factory-method-vs-abstract

根据这个页面,区别在于Factory Method模式中的Creator(即创建新对象的实体)和Client(即使用 的实体Creator)是同一个类。更准确地说,这个模式只定义了一个方法,所以类的其余部分是Client. 然而Abstract Factory, theCreator和 theClient单独的类。的Creator唯一目的是创建对象所以只有一个单独的类可以Client

这种区分正确吗?如果是这样,为什么不能将其中的Creator方法Factory Method放在单独的类中?它会产生任何问题吗?Creator同样,为什么 中的类不能与中的类Abstract Factory相同Client?这会产生任何问题吗?

0 投票
1 回答
143 浏览

java - 使用工厂方法创建泛型

我有一个带有通用集合(Flavors)的抽象类(Candy)。Candy 有一个工厂方法来生成它自己的具体实例。它还具有获取适用于具体糖果的通用风味实例并将风味添加到其集合中的方法。

我知道 getter 正在工作,因为如果我从 CandyStore 投射风味,则具体风味独特的方法可以正常工作。但是最后一行,addFlavor(flavor), errs (Eclipse) 在我身上。错误是:“ICandy 类型中的方法 addFlavor(capture#5-of ? extends IFlavor) 不适用于参数 (IFlavor)。” 谁能解释发生了什么?

界面:

抽象类:

具体类:

使用者:

编辑:为清楚起见,JolRanchFlavor extends CandyFlavor implements IJolRanchFlavorCandyFlavor implements IFlavor.

0 投票
1 回答
272 浏览

objective-c - 在 Objective-C 中使用超类实例方法

我对在 Objective-C 中使用 instancetype 感到困惑。

代码:

然后,我可以运行它

为什么这会返回 MyChildClass 而不是 MyClass ???

为什么编译器不显示任何警告或错误消息,我正在使用超类的初始化方法,而不是 MyChildClass 初始化方法???

我在哪里可以使用这个???

0 投票
1 回答
51 浏览

java - 项目管理系统的设计模式

我必须为我的名为“项目管理系统”的项目制作“装饰器模式”。这是一个应用程序,讲师可以为学生添加项目主题,学生可以浏览、选择和预订。每个学生都可以发送他的进度,讲师可以评估等。我制作了第一个设计模式,称为“工厂方法”,如下图所示,我的讲师第四次接受这种模式,因为我犯了很多错误。

http://i.stack.imgur.com/kKby7.jpg

我需要您对装饰器模式的帮助,因为我真的不知道如何绘制它。谢谢和对不起我的英语。