问题标签 [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.

0 投票
1 回答
262 浏览

model-view-controller - What are some patterns for creating views and controllers in an MVC or MVP app?

I'm working on a MVC/MVP GUI for editing a document. The document has a tree structure, with some nodes representing text, others images. The app model also includes a command stack, with commands operating directly on the model.

Since different nodes have radically different controls, I'm planning on implementing individual MVC/MVP triads for each node. Where I'm running into trouble is how to synchronize creation and destruction of the peer V and C components.

My ideas:
- listen on each node for "childAdded" type events, and then create peers based on those events
- use a factory for creating nodes in the model, and have that factory also create the peers

What are some common patterns or best practices for dynamic view/controller generation?

0 投票
3 回答
396 浏览

design-patterns - What is the name of this factory type pattern and how do I represent it in UML?

Example: I have several types, e.g. Wheel, Brake, Engine, Clutch, AutoBox, ManualBox, ElectricWindow, RearParkingSensor, HeatedSeats. These will all inherit a ICarPart marker interface (could be an attribute (java annotation), but doesn't matter at this stage).

I then write my Car class that can represent all car types, e.g.

I then write a factory to create cars. The factory could refer to some XML which is an ingredients list for different car types. E.g. (and please ignore format, this is just for illustration):

The factory would parse this ingredients list and create the car object. New car types would be available to the system providing the parts had been coded and the ingredient list XML written.

Questions:

  1. What is this pattern called? Or is it just multiple patterns combined?
  2. Is any of this an antipattern?
  3. How do I represent this in a UML? I could do a class diagram for the parts and for the base car class. How would I show the instances of that class that are currently supported and the parts they have?

Thanks in advance. If any of this is unclear please comment and I'll amend/udpate/provide more details.

0 投票
2 回答
1681 浏览

php - 在 PHP 中将数据对象传递给工厂

请帮我实现该任务的工厂设计模式。

我正在开发预定的消息发送 Web 应用程序。用户可以指定自己的预定发送计划,消息将在需要时发送。用户只能选择 3 种重复类型中的一种:每月、每周、每天。对于这 3 种重复类型算法是相似的:1)选择发送日期和时间(对于第一次交付) 2)根据重复类型选择“每 X 个月/周/天重复一次”中的选项 3)按类型指定结束(日期或按出现次数限制)

每周调度程序有点不同。它还有一个功能 - 重复的工作日(例如:每周一、周五重复)

设置方法:

我想使用工厂模式进行对象构造(它是最佳匹配吗?),并且不知道如何传递所有这些参数(不仅仅是$type,而是所有其他参数)来构造对象。

我应该创建将它们包装在单个数据对象中,并在 SchedulerFactory 类中创建方法“setOptions”并通过 getter 将此数据对象传递给“创建”构造方法吗?

也许在工厂类中创建这样的 setter 方法违反了工厂设计模式原则?我以前没有看到这样的例子,所以我现在有点困惑。

如果我走错了方向,请告诉我。您会为此任务推荐什么解决方案?

提前致谢

0 投票
2 回答
244 浏览

c# - 基于环境的类数据抽象存储(web/windows)

我有一个类,其信息的存储将取决于它是否被 Web 或 Windows 应用程序使用。我打算使用工厂模式来传递正确的对象。如果我不想重新创建对象,我猜调用者会适当地存储该对象。有人对基于平台抽象出数据存储有其他建议吗?

例如,我想在 Windows 应用程序调用时将数据存储为局部变量(发送适当的子类),并在 Web 应用程序调用时保存在 Session 中。

0 投票
2 回答
4938 浏览

attributes - Axis SecureSocketFactory - 设置构造函数属性

在使用以下属性进行 https 连接时,我有一个客户 SecureSocketFactory 设置供 Axis 使用:

当 Axis 实例化此类时,会调用带有 Hashtable(属性)的构造函数。我看到这个表中设置了超时属性。无论如何要在其中设置更多值吗?我希望能够通过使用静态或系统属性在每个实例场景而不是全局配置套接字工厂。

编辑:我发现这些属性实际上是 HttpSender (BasicHandler) 选项。我仍然无法动态设置这些。

0 投票
4 回答
313 浏览

c# - 如何以更清洁的方式处理大型工厂

我的开发团队遇到了设计问题。我希望有人可以帮我清理一下架构的这一部分。

在我的系统中,我有一个包含 250 个成员的枚举 [一个成员代表一个不同的下拉列表]。为了在任何给定窗口上填充下拉列表,该表单发送与所需下拉列表相关的枚举成员,并返回下拉信息。

换句话说,例如,我们有 3 个窗口。窗口 A 有下拉 X、Y 和 Z。窗口 B 有下拉 W、X 和 Y,窗口 C 有下拉 T、U 和 W。我的 DropDownType 枚举将由 T、U、W、X、Y、Y 组成和 Z。因此,对于指定的窗口,给定该窗口上的下拉菜单,我查询要出现在这些下拉菜单中的数据。

这是一个简化的示例,因为我的应用程序包含超过 250 个不同的下拉菜单。

你可以想象,我有一个工厂设置来返回每个下拉菜单的数据。每个请求的下拉菜单都会调用这个工厂。

由于我在这个枚举中有这么多成员,有没有人知道一种更优雅的编码方式?您认为将其转换为工厂方法会有所帮助吗(但是我们不得不担心源代码中有 250 个单独的文件......)?还有另一种更有用的模式吗?仅仅拥有这个巨大的 switch 语句就变得难以管理。

任何帮助是极大的赞赏。提前致谢!

0 投票
7 回答
6015 浏览

c# - 是否可以将 ac# 对象初始化程序与工厂方法一起使用?

我有一个带有静态工厂方法的类。我想调用工厂来检索类的实例,然后进行额外的初始化,最好通过 c# 对象初始化器语法:

对比

0 投票
8 回答
19458 浏览

python - Python 动态函数名

我正在寻找一种更好的方法来调用基于 Python 中的变量的函数,而不是使用下面的 if/else 语句。每个状态码都有对应的功能

我认为这将需要某种工厂函数,但不确定语法

0 投票
4 回答
581 浏览

java - 在 Java 中链接两个抽象工厂模式

我正在编写一个引用匹配程序,其中需要两个抽象工厂模式,这是两个接口;QuoteFactoryModeFactory。ModeFactory 在EasyModeHardMode之间切换,而 QuoteFactory 在几个不同的主题(即, PoliticalQuotesSportsQuotes)之间挑选出报价。简而言之,用户将选择一种模式,如果选择 EasyMode,则用户必须猜测报价,而如果用户选择 HardMode,则告诉用户是谁说的,然后必须猜测,所以 Quotes 的实现将根据模式以及选择的报价而变化。

到目前为止,我已经创建了 ModeFactory 作为接口并将其实现为 EasyMode 和 HardMode,但现在我需要以某种方式将另一个抽象工厂模式(或更多)集成到这些模式中,以便可以选择引号。如果有帮助,我还创建了一个 Quote 类,其中定义了我的 Quotes。

谁能帮我想出这些抽象工厂的基本实现?这是我到目前为止的大纲,虽然我不禁觉得我以某种方式过于复杂了......

编辑:为了澄清我的意思:如果用户选择简单模式,那么他们会获得报价的开头和该报价的作者,而如果他们选择硬模式,则只会提供报价的开头。例如

简单模式: “我感受到了……的力量”何塞·穆里尼奥

困难模式: “我感受到了……的力量”

硬模式不会让作者让用户更难猜出报价的其余部分。另外,这不是学校作业。我一直在阅读 Head First Design Patterns,现在我正在尝试将我学到的知识应用到不同的情况中(而不是他们的 Pizza 示例,我正在研究一个 Quote Guessing Game,在阅读完 QI(英国电视节目) 书。

0 投票
8 回答
712 浏览

c# - 工厂班知道的太多

已更新我已更新示例以更好地说明我的问题。我意识到它遗漏了一个特定点 - 即该CreateLabel()方法总是采用标签类型,因此工厂可以决定创建哪种类型的标签。问题是,它可能需要获取更多或更少的信息,具体取决于它想要返回的标签类型。

我有一个工厂类,它返回代表要发送到打印机的标签的对象。

工厂类如下所示:

假设我创建了一个名为 CustomLabel 的新标签类型。我想从工厂退回这个,但它需要一些额外的数据:

这意味着我的工厂方法必须改变:

我不喜欢这样,因为工厂现在需要满足最小公分母,但同时 CustomLabel 类需要获取自定义文本值。我可以提供额外的工厂方法作为替代,但我想强制执行 CustomLabel 需要该值的事实,否则它只会被赋予空字符串。

实现此方案的正确方法是什么?