问题标签 [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.
c++ - 命名构造函数和继承
我正在研究 C++ 框架,并希望将自动内存管理应用于许多核心类。到目前为止,我有标准的方法是
但是,当我将 Foo 子类化时,上面的内容就中断了,因为即使 thoinit()
是继承的,它仍然返回shared_ptr<Foo>
包含指向实例的指针Foo
。
谁能想到一个优雅的解决方案?我是否应该坚持使用(半)手动包装类的实例shared_ptr
?这也可以在不声明新的命名构造函数的情况下公开参数化构造函数......
IE。
python - 在 Python 中使用基类构造函数作为工厂?
我使用基类构造函数作为工厂,并在这个构造函数/工厂中更改类以选择合适的类——这种方法是好的 python 实践还是有更优雅的方法?
我试图阅读有关元类的帮助,但没有取得很大成功。
这是我在做什么的例子。
有了这段代码,我可以通过基类 Project 创建 ProjectLocal/ProjectRemote 的实例:
我知道另一种方法是使用将基于 url 返回类对象的结构函数,然后代码看起来相似:
我的第一种方法只是口味问题还是有一些隐藏的陷阱?
.net - 实现使用规范来确定要创建的对象类型的工厂
这主要是一个思想实验。所以这一切都是示例代码。我的目标是使用规范模式来消除工厂内大量的条件代码。因此,对于这个示例,我有一个 StatusData 对象,我想获得一个适合它的 IStatusUpdate 实现。
我有以下一组测试:
到目前为止,我的工厂实现如下所示:
一旦我发现了状态对象满足的规范,我就会失败,我如何将该规范映射到实现 IStatusUpdate 的类型。我很难过。
有人正确地建议我需要将规范映射到 IStatusUpdate 实现者。这种映射似乎是工厂的责任,把它挂在规范之外闻起来像是违反了 SRP。我可以创建一个具有该职责的 Mapper 类,但这似乎不是很通用,并且还提出了如何将映射器映射到规范的问题。
我在这里仍然缺少一个小飞跃。
design-patterns - 仅通过 Factory DP 实例化我的所有类有什么好处?
可能重复:
使用工厂而不是构造函数来创建对象的阈值是多少?
仅通过 Factory DP 实例化我的所有类有什么好处?
据了解,当您必须从类似对象列表中进行选择来执行某些任务时,工厂是好的,比如说翻译类(英语->法语,阿拉伯语->希伯来语......)但是当您真的有一个可能的时候选项,没有理由用工厂方法模糊/抽象逻辑。
有什么见解吗?
c# - 在 NHibernate 中,我可以使用工厂来构建复杂的聚合对象(实体)吗?
在 NHibernate 中,我可以使用工厂来构建复杂的聚合对象(实体)吗?如果是,那怎么办?如果没有..那么你的方法是什么?
c++ - 有没有办法从保存类名的字符串中实例化对象?
我有一个文件:Base.h
和另一个文件:BaseFactory.h
有没有办法以某种方式将此字符串转换为实际类型(类),这样 BaseFactory 就不必知道所有可能的派生类,并且每个都有 if() ?我可以从这个字符串生成一个类吗?
我认为这可以通过反射在 C# 中完成。C ++中有类似的东西吗?
ruby-on-rails - 工厂女孩中非活动记录关联的问题
我刚开始在测试时使用工厂女孩来更换夹具。我正在开发一个 twitter 客户端,我正在尝试使用 factory girl 创建用于测试的 twitter 对象。当我单独创建它们时,这很好。但是,如果我尝试将它们关联起来,我会收到以下错误。
导致问题的t.association :user, :factory => :twitter_user
原因是当它存在时会引发此异常。有没有什么办法解决这一问题?还是工厂女孩只是为 activerecord 对象设计的?谢谢
c# - 我的 DDD 工厂类中应该使用哪些方法?
我很难理解我的工厂类在我的 DDD 项目中应该做什么。是的,工厂应该用于创建对象,但它到底应该做什么。考虑以下工厂类:
我应该从工厂内直接调用存储库吗?
从数据库中检索数据时,我应该如何管理对象创建?
我需要什么来完成这个课程,我应该有什么其他方法?
我应该使用这个类从域和存储库中创建产品对象吗?
请帮忙!
c++ - 可以将参数传递给工厂方法吗?
正确实现依赖注入的方法之一是将对象创建与业务逻辑分开。通常,这涉及使用工厂创建对象。
到目前为止,我从未认真考虑过使用工厂,所以如果这个问题看起来有点简单,我深表歉意:
在我遇到的所有工厂模式示例中,我总是看到没有参数化的非常简单的示例。例如,这是从Misko Hevery出色的How To Think About “new” Operator文章中偷来的 Factory。
但是,如果我希望我建造的每座房子都有一个名字,会发生什么?如果我按如下方式重写此代码,我是否仍在使用工厂模式?
请注意,我的工厂方法调用已从这里更改:
对此:
顺便说一句:我认为将对象实例化与业务逻辑分离的概念很棒,我只是想弄清楚如何将它应用于我自己的情况。让我感到困惑的是,我看到的所有工厂模式示例都没有将任何参数传递给 build() 函数。
需要明确的是:直到我需要实例化它之前,我才知道房子的名称。
c++ - 工厂模式与全局状态不是一回事吗?
假设我有这样的课程:
如果没有工厂,我需要执行以下操作才能实例化MonkeyFish
.
另一方面,如果我有MonkeyFishFactory
,似乎我必须这样做:
我仍然有全局对象。
即使 MonkeyFishFactory 本身在
GlobalObjects
内部创建了(所以它们现在在 MonkeyFishFactory 内部而不是真正的全局变量中),看起来 MonkeyFishFactory本身仍然需要是一个全局对象,以便我可以随时访问它来创建一个MonkeyFish
.
在这种情况下,工厂模式与全局状态不是一回事吗?
(我目前的假设是全局状态是一件坏事,消除它是一件好事。)