问题标签 [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 投票
5 回答
8718 浏览

c# - Activator.CreateInstance:类的动态实例化

我正在设计一个松散耦合的结构。我想通过由 String 表示的代码从不同的程序集/命名空间调用类。我的设计是,每个客户端的业务规则都在不同的程序集上,并且彼此不依赖(一个客户端与一个 DLL 的比率),因此当我对 1 个客户端的业务规则进行更新时,它不会影响其他客户端。我现在的注意力是使用 Factory Design 和使用Activator.CreateInstance()方法。

这是项目设置(2+n DLL)

实际代码

知道为什么我的样品不起作用吗?以及改进设计的任何建议?提前致谢。

怎么用

表达式.Lambda

任何人?

0 投票
1 回答
626 浏览

c# - 抽象三层应用程序的 DataLayer (DAL)

作为我上一个问题的延续,(请参阅https://stackoverflow.com/questions/3737848/creating-a-loosely-coupled-scalable-software-architecture

有人建议也像我从三层项目的表示层抽象 BLL 一样抽象 DAL。关于如何做到这一点的任何建议?我还需要在 BLL 和 DAL 之间建立一个工厂吗?我需要你们的意见。谢谢。

0 投票
3 回答
2405 浏览

java - 静态工厂方法中的泛型?(爪哇)

我有一个任务要求我使用工厂模式来实现不可变的数据结构,但问题是抽象类是泛型的,并且让静态方法引用泛型类型给我带来了问题。我的任务是要求我使用静态方法,所以我开始恐慌。有什么帮助/建议吗? 编辑添加了一些示例代码,这里是教授给我们签名的一种方法的规范:

ExampleClass.method1 : ExampleClass, T -> ExampleClass

ExampleClass.method2 : ExampleClass -> T

我喜欢的这两种方法都给我带来了日食问题。

0 投票
4 回答
4440 浏览

python - 动态基类和工厂

我有以下代码:

现在在工厂中,我可以获得 EntityBase 的所有子类,找到“SMTH”的具体子类并创建它。

这是有效的方法,还是我被误解并做错了什么?

0 投票
3 回答
226 浏览

.net - 我可以在这种情况下使用工厂模式吗?

我想知道我是否可以——以及如何——在这种情况下使用工厂模式?

我有以下课程...

.. ETC ...

我想知道是否可以通过工厂方法创建实例,例如...

这可能吗/我在正确的轨道上吗?

0 投票
1 回答
404 浏览

python - Python - 关于工厂函数的问题

我有一系列类,我将作为服务注册到更高级别的抽象类。高级类将具有一个基于init args 等获取低级类的函数。这听起来很疯狂吗?还有,这个叫什么?我称之为工厂函数/类,但我真的不知道(这使得谷歌的最佳实践变得更加困难)。

0 投票
1 回答
613 浏览

c# - 使用工厂的动态继承

我想我知道这个问题的答案,但我希望有人有一个巧妙的解决方案。我们目前使用两种下拉控件(Telerik 和 .Net)。我希望将这些组合成一个控件,但在用户友好的设计中挣扎。

理想情况下,控件将在设计文件中创建,具有布尔属性,例如“SimpleBox”,以确定要继承的控件类型。然后将在代码隐藏设计文件中生成实例化,然后构造函数将动态加载基础(这是不可能的)。对我来说,简单的解决方案是创建一个 IDropDown 接口,然后让工厂创建正确的接口。唯一真正的问题是每次都必须手动编写实例化,这很麻烦,而且根本不会加快我们的进程。

虽然这不是直接可能的,但我正在寻找一种类似于工厂的解决方案,该工厂在对象构造函数中运行以基于 bool 属性设置基础。

干杯

0 投票
1 回答
611 浏览

java - 基于套接字的消息工厂

我正在寻找有关实现基本消息工厂的一些想法,该工厂从输入流中读取标头并根据消息标头中定义的类型创建适当的消息类型。

所以我有类似的东西(大致......如果这里提供更好的范例,我愿意改变设计)

我基本上想做这样的事情:

虽然这个方案有效,但我觉得可能有更好的方法使用 Map 和 Interface 以某种方式......

但是,每当我想使用该消息时,我都必须使用 instanceof 并转换为正确的子类。

有第三个(更好的?)选项吗?也许有一种方法可以使用模板来实现这一点。任何帮助表示赞赏。谢谢

编辑:我想重要的是要注意我想将消息“分派”到一个函数。所以本质上我真的很想这样做:

因此,结合工厂和调度的模式将是完美的

0 投票
4 回答
1006 浏览

python - 对象生成器模式

我有一个代表一个非常复杂的对象的类。可以通过多种方式创建对象:增量构建、解析不同格式的文本字符串以及分析二进制文件。到目前为止,我的策略如下:

  • 让构造函数(__init__在我的情况下)将所有内部变量初始化为None

  • 提供不同的成员函数来填充对象

  • 让这些函数将新的、修改后的对象返回给调用者,这样我们就可以做sd = SuperDuper().fromString(s)

例如:

问题是班级变得非常庞大。不幸的是,我不熟悉 OOP 模式设计,但我认为对于这个问题有一个更优雅的解决方案。将生成器函数从类中取出(这样fromString(self, s)就成了superDuperFromString(s)一个好主意?

0 投票
3 回答
3582 浏览

c++ - Factory 类的典型 C++ 实现是否存在缺陷?

我需要在 C++ 中实现工厂类,但是当我想到这个时,我发现了一个我无法解决的大问题,我发现周围所有的工厂实现示例都存在相同的缺陷。我可能是错的人,但请告诉我为什么。

所以这里是简单的“典型”工厂实现,它允许我在不更改工厂类的情况下注册新对象。

好的,这段代码看起来很漂亮,而且它可以工作,但是这里来了但是:

C++ 标准不允许我定义全局(静态)变量的定义顺序。

我这里有 3 个静态变量

Factory::factory指针需要在 Apple(或 Banana)::registered 变量之前定义为 NULL ,否则该方法Factory::instance将使用未初始化的值,并且行为不可预测。

那么,我没有得到什么?代码真的只是偶然地工作吗?如果是这样,我应该如何解决这个问题?