问题标签 [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.
java - Java 是否存在像 Factory Girl 这样的框架?
Factory Girl 是 Rails 中一个方便的框架,用于轻松创建模型实例以进行测试。
来自工厂女孩主页:
factory_girl 允许您为每个模型快速定义原型,并请求具有对手头测试很重要的属性的实例。
一个例子(也来自主页):
如果我需要一个用户可以打电话
这将产生一个具有工厂原型中指定的所有属性的用户,除了我明确指定的管理属性。另请注意,电子邮件工厂方法每次调用都会产生不同的电子邮件。
我认为为 Java 实现类似的东西应该很容易,但我不想重新发明轮子。
PS:我知道 JMock 和 EasyMoc,但是我不是在这里谈论一个模拟框架。
design-patterns - 工厂和抽象工厂设计模式之间的基本区别是什么?
工厂模式和抽象工厂模式之间的基本区别是什么?
java - 拥有工厂时在哪里放置 getAll() 方法
我正在做一个java应用程序。
到目前为止,这是我的文件:
人机界面。
有一个 setName(String aName) 方法
PersonImpl
人员界面的实现。
PersonFactory 接口
有一个 createPerson()
PersonFactoryImpl
PersonFactory 接口的实现。
问题是我愿意添加一个 getAll() 方法,它返回一个人的集合,但我不知道把它放在哪里。
我正在考虑将其作为静态方法添加到 PersonImpl 或 PersonFactoryImpl,但我不确定。
哪个是最好的方法?
谢谢阅读!
asp.net - 有没有办法将类用作用户控件的类工厂?
.NET 2.0 中有没有办法将类用作用户控件的类工厂?换句话说,1 个 super 坐在那里,当我想要一个用户控件时,它会创建它并将其返回给我。似乎它需要我似乎无法引用的 ASP 命名空间。
我有一个带有占位符的母版页。根据用户的身份验证,我想动态加载用户控件。例如,如果他们通过了身份验证,它可能是一个搜索控件,如果他们没有登录,它可能是一个广告。我可以动态加载它们。但我的计划是使用一个类来控制它。现在我必须在后面的母版页代码上加载它们。类中没有要显示的代码,因为它不会让我引用用户控件,所以我不会走得太远。
c++ - “自工厂”模式
我不知道这个有没有正式的名称,但我一直在玩我喜欢称之为“自我工厂”的模式。基本上,这是一个抽象基类充当自己的工厂的时候。让我解释:
我的系统中有 Foo 对象和 Bar 对象,它们通过接口 FooInterface 和 BarInterface 使用。我需要为我的客户提供正确类型的 Foo 和 Bar。在编译时决定创建哪个具体的 Foo 对象。例如,如果你在 win32 上编译,你只想创建 Win32Foo 对象,如果你在 OSX 上编译,你只想创建 OSXFoo 对象等等。但是,创建哪个具体的 Bar 对象是在运行时根据键字符串决定的。
现在,我的问题是关于实施该方案的最佳方式。我想出的一种方法是使用常规工厂:
另一种方法是使用我所说的“自我工厂”:
从可用性的角度和架构的角度来看,每种方法的优缺点是什么?
ruby-on-rails - 在使用 Factory Girl 工厂进行测试时,如何覆盖 AASM 中的 :set_initial_state?
更新
下面回答。如果链接的站点消失,您可以使用 mocha 来存根初始状态并防止覆盖,如 ...
原始问题
我目前正在运行 Acts As State Machine Rails 插件(顺便说一句,它节省了大量时间)并且在与 Factory Girl 一起使用它时遇到了一些挑战(也很棒)。
我希望能够在使用工厂创建对象时设置对象状态。问这个问题的一种通用方法是“在使用工厂创建对象时如何调用类方法?”
我可以随时调用 t.activate!每个测试中的方法,但这会使我的测试变得脆弱。我正在寻找一种在工厂创建级别运行此方法或将其设置在 factory.rb 中的方法。
谢谢...
unit-testing - 具有具体类作为返回类型的单元测试工厂方法
所以我有一个工厂类,我正在尝试找出单元测试应该做什么。从这个问题中,我可以验证返回的接口是否属于我所期望的特定具体类型。
如果工厂返回具体类型,我应该检查什么(因为目前不需要使用接口)?目前我正在做类似以下的事情:
这样做的问题是Assert.IsNotNull
似乎有些多余。
此外,我的工厂方法可能正在设置该特定类的依赖项,如下所示:
我想确保我的工厂方法正确设置了所有这些依赖项。有没有其他方法可以做到这一点,然后让public/internal
我在单元测试中检查这些依赖项属性?(我不喜欢修改测试对象以适应测试)
编辑:为了回答罗伯特哈维的问题,我使用 NUnit 作为我的单元测试框架(但我不会想到它会产生太大的影响)
c++ - 如何将工厂模式与代码灵活性结合起来
我正在考虑使用工厂函数在同一层次结构中创建不同的类。我了解通常工厂通常执行如下:
我正在尝试一种方法,使该过程可以自动化,从而不需要对各种条件进行硬编码。
到目前为止,我能想到的唯一方法是使用地图和原型模式:
该映射将在第一个元素中保存类型字符串,在第二个元素中保存类实例(原型):
该函数可能如下所示:
不幸的是,原型方法仅在您只希望工厂创建的类每次都相同时才有效,因为它不支持参数。
有谁知道是否有可能以一种好的方式做到这一点,还是我坚持使用工厂功能?
delphi - 通用工厂
假设我有一个 TModel:
和2个后代:
和工厂:
现在我想重构一下:
到目前为止还可以,但是每次创建TModel
后代时,我都必须修改工厂case
语句。
我的问题:这是否可以为我所有的TModel
后代创建一个 100% 的通用工厂,所以每次创建TModel
后代时我都不必修改TModelFactory
?
我尝试使用Delphi 2009泛型但没有找到有价值的信息,都与基本用法等TList<T>
有关。
更新 对不起,但也许我不清楚或不明白你的答案(我仍然是菜鸟),但我想要实现的是:
c# - 工厂根据泛型 C# 创建对象
根据传递给工厂类的泛型类型实例化对象的最有效方法是什么,例如:
你会怎么做?哪个分支语句?ETC...