问题标签 [objectfactory]

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 投票
0 回答
100 浏览

javascript - Javascript 对象工厂实例

为什么下面的对象工厂模式代码返回false...

...而以下构造函数模式代码返回 true;

0 投票
0 回答
254 浏览

c# - 如何将 structureMap.autoMocking 与 objectFactory.BuildUp 一起使用

我的课是这样的:

在我的测试中:

在此行上抛出异常“StructureMap.StructureMapConfigurationException:没有注册默认实例,无法自动确定类型...”(第一个注入服务的类型)

我应该如何解决这个问题?

谢谢!

0 投票
1 回答
2687 浏览

c# - 在 StructureMap 4.0 中获取现有容器

我遇到了 StructureMap 4.0 的问题。在使用 StructureMap 3.0 时,我使用 ObjectFactory 来配置所有实例,并且在解决方案中的任何地方都可以很容易地通过它自己的接口获取实例。例如:

  1. 在 global.cs,我声明如下: ObjectFactory.Initialize(x => { x.For().Use(); }

  2. 在另一个类中,例如 Family.cs,很容易获得 Peson 的实例: var person = ObjectFactory.GetInstance();

但是,将 StructureMap 更新到 4.0 后我遇到了问题。它使用 Container 而不是 ObjectFactory,我找不到任何方法来获取现有容器。我的意思是这段代码是错误的 var person = container.GetInstance();

如果我在 global.cs 中将 Container 声明为静态变量,那么我可以从 Family.cs 类中访问它。我不喜欢这种方式。我希望通过获取在 global.cs 中声明的现有容器来像 ObjectFactory 一样工作,但我不知道该怎么做。

0 投票
0 回答
226 浏览

c# - Rhino Mocks 断言方法被调用一次

我有一个使用 Rhino Mocks 测试的方法。当我自己测试这个方法时,它通过了,但是当测试多个方法时,它失败了。我认为这是因为我没有正确地破坏某些东西。下面是我创建我的 ObjectFactory 的设置代码。

这是其中一个单元测试的示例。

其他测试类似,只是改变返回值来影响逻辑路径。如果我一次运行它们,它们都会通过,但如果我一次运行它们,它们都会失败。

0 投票
0 回答
1648 浏览

orika - Orika - 在不注册 ObjectFactory 的情况下确定构造函数调用

我需要用 Orika、OrikaA 和 OrikaB 映射两个类。OrikaB 类有一个构造函数,其中一个参数在 OrikaA 类中不存在。为了将 OrikaA 映射到 OrikaB,我使用了自定义 ObjectFactory:

是否有另一种方法可以在不使用自定义 ObjectFactory 的情况下完成相同的任务?

0 投票
0 回答
36 浏览

c++ - 具有有限基类的对象工厂

昨晚我在设计对象工厂时遇到了一个难题,并想在这里寻求一些指导。

本质上,我的“CameraFactory”返回指向基于可用类型的类的指针,例如“FIXED”或“FREE”(还有更多,但我会保持这个例子简短)。所有这些都继承自 CameraBase。但是,我的问题是,由于 CameraBase 类的实现非常有限,用户需要对static_cast<typeOfCameraRequested*>(returned CameraBaseDerivative*);返回的指针执行 a 。

我觉得通过强制用户“记住”静态转换结果是不好的做法(顺便说一句,我在实际实现中没有使用原始指针)。但据我了解,创建“整洁”工厂实现的唯一其他方法是在 CameraBase 中包含派生类的所有成员/方法的接口,以便可以轻松调用派生类。

请问有人可以阐明解决此问题的最佳方法吗?我应该重新设计我的课程吗?如果是这样,它应该是什么样子?泛型?

谢谢!

要考虑的代码:

0 投票
2 回答
548 浏览

c++ - 带有抽象工厂的派生类的 c++11 单例

MWE 很长,请多多包涵。简而言之,我想使用抽象对象工厂来创建从基类派生的对象,派生对象制作为单例并使用 shared_ptr 传递。到目前为止,如果单例不是从单例模板以外的任何东西派生的,那么一切正常。

假设一个具有以下结构:

我想使用我的抽象对象工厂来生成派生类,但确保它只创建一次,否则将 std::shared_ptr 返回到派生对象。

如果我想创建不是从任何东西派生的对象,我已经实现了一个单例模板和一个对象工厂,它们可以很好地工作:

单身人士:

对象工厂:

可以说我现在想使用它:

我收到很多编译错误,抱怨移动,自过去几个小时以来我无法解决。

你能帮我吗,或者把我重定向到某个地方。我想要至少有可能吗?谢谢!

0 投票
1 回答
497 浏览

c++ - 具有内置缓存的 C++ 对象工厂 - 阴影模板参数

我有一个数据库类,它应该提供一个模板方法来返回表示表的存储库对象。每个存储库应仅存在一次。我找到了这个例子,但我想要一个内置的缓存。

标题database.h如下所示:

GetRepository方法的实现如下所示:

我想这样称呼它:

当我编译我得到错误:

我需要在模板方法中更改什么以不隐藏任何模板参数?


更新

在 NathanOliver 的建议之后,模板方法如下所示:

这次我得到错误:

它指向nullptr模板签名中。


更新 2

根据@NathanOliver 给出的答案,我尝试了几种参数组合。我仍然得到错误:

为了更好地理解,我还添加了存储库基类。

0 投票
0 回答
52 浏览

java - java web服务客户端类存在版本号时如何创建动态实例?

我们正在使用的 Web 服务客户端 jar 会定期更新,因此客户端生成的类如下所示,

jar 中最初只存在 PersonRequet1,PersonResponse1 类,但现在已更新为 3。

之前我们调用服务 API 时,我们曾经像下面这样实例化请求和响应对象。

现在,问题是当客户端 jar 更新版本号时,我们被迫使用最新版本,所以我们正在更新如下代码 -

是否有任何方法可以创建一些具有如下键值的配置文件,并动态实例化对象引用或使用模式的任何其他良好实践

0 投票
2 回答
293 浏览

c# - 如何调用通过C#中的结构映射实例化的类的构造函数

我有一个名为 ILogger 的接口,它基本上包含一些日志记录方法。

记录器.cs

我有一个实现此接口的 LogHelper 类。LogHelper 类通过 StructureMap 实例化,例如

我有很多类的构造函数,我只是实例化这个类并调用方法来记录信息。例如:我有一个类说 Dummy1 在其构造函数中我将 LogHelper 实例化为:

在 LogHelper 中,我有一个方法,它基本上创建日志文件并将作为参数传递的消息写入它。

目前,文件名被硬编码为 LogHelper 类的常量属性private string messageFilename = "logs\\UserCreationResult.log"

但我希望在实例化 LogHelper 时动态发送文件名。我想拥有一个类属性,并在实例化类时在构造函数中定义该属性。但是由于 LogHelper 类被实例化为ObjectFactory.GetInstance<ILogger>(). 我无法调用可以传递文件名的构造函数。