问题标签 [multiton]

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 回答
86 浏览

java - 将 Java 类注释为安全的以供参考比较

我有一个多吨的类,所以我知道给定一个特定的键,永远不会存在同一个类的两个实例。这意味着,而不是:

...我这样做是安全的:

该类也是final,所以我知道与多态性相关的任何内容都不会导致比较问题。

IDEA 尽职尽责地告诉我,直接比较两个实例是有风险的,我应该使用.equals(),但我知道在这种情况下不是这样。是否有一些注释可以应用于我的班级以指示 IDEA 以及可能的其他编辑器,更重要的是其他用户,我班级实例上的直接引用比较是否安全?

我知道我可以告诉 IDEA 禁止显示警告,但是对于这两种类型之间的每次比较或全局比较,我都必须这样做,这两者都不是一个好主意。另外,更重要的是我让我班的用户知道它比.equals().

0 投票
1 回答
146 浏览

java - 基于经过时间的单例(或多例)模式

下面我已经实现了该Multiton模式,但我认为这个问题同样适用于该Singleton模式:

我想通过每 300 秒实例化一个新实例来修改这个设计 - 所以如果从我们实例化前一个实例的时间过去了 300 秒,我想再次实例化它(或者如果该实例从未实例化)。

怎么可能做到这一点?

0 投票
1 回答
131 浏览

java - 将具有静态属性的 Singleton 更改为 Multiton

我有以下单例类

现在我想拥有两个独立的引擎(将来可能更多),用于跟踪目的,我偶然发现了 multiton 模式,仍然使用惰性实现。所以我将更改以下内容:

我想确保每个引擎都有其单独的计数器和文件列表。但是,在我运行以下代码后,它们似乎共享计数器和列表:

安慰:

我应该如何处理countergeneratedFileList字段,以便TestFileEngine从 Multiton 创建的每个字段完全分开?

0 投票
1 回答
294 浏览

javascript - ES6 中的 Multiton 设计模式

我想在我的 node.js 应用程序中创建 Multiton 设计模式作为我的用户模块的一部分。我需要很好的例子。

0 投票
2 回答
115 浏览

python - freezesets 的“Multiton”实现 - 每个值只有一个实例

我怎样才能实现frozensets 的 Multiton 设计模式,无论它frozenset是如何创建的?

我正在寻找的是行为就像 的类frozenset,但它保证“完全实习”:对于任何两个实例,如果a == bthen a is b

这个问题的答案似乎为传递给构造函数的每个参数 生成了一个实例(并且似乎还假设这些是可散列的)。但是一个给定的frozenset可以用许多不同的方式构造:构造函数可以得到具有不同元素顺序的元组,或者不可散列的列表;或者您可以使用诸如 a.union(b) 之类的运算符来创建冻结集等。

动机自然是 - 试图节省内存。我有一个图,其中许多顶点由(除其他外)recurring frozensets 标记。该图是通过从旧的顶点创建新的顶点来“增长”的,而新frozenset的 s 是通过从旧的顶点中添加或删除元素来获得的。

非常感谢!

0 投票
0 回答
101 浏览

javascript - JavaScript 中的异步 Multiton 模式?

我想使用带有异步函数的 JavaScript 中的 Multiton 模式来缓存性能密集型对象生成。我提供了一个例子,想知道我是否正确地实现了它,即这是否足以保证同名的对象永远不会生成两次,无论执行的异步顺序如何。

0 投票
1 回答
1264 浏览

oop - SAP ABAP - 如何将实例存储到内部表中以显示多吨设计模式?

我的任务是在 ABAP 中创建 multition 设计模式的简单演示。据我了解,创建的实例应存储到静态内部表中,以便以后使用。这是我的尝试:

结果:每次我创建一个这样的新实例时:

该实例被保存到表中,但会覆盖以前存在的记录。因此,如果我创建一个玩家 ID 为 1、2、3、4 的实例,我将在表中拥有 4 个实例引用,但它们都将引用最后创建的实例。

我理解这个问题 - 我正在使用 NEW 关键字,它会覆盖现有记录。我该如何解决这个问题?任何帮助将不胜感激。

0 投票
1 回答
126 浏览

spring - 如何使用 Spring Framework 实现多点模式

如何使用 Spring Framework 的工具来实现 multiton 模式?

https://en.wikipedia.org/wiki/Multiton_pattern

我想编写一个以一对客户和供应商为参数的工厂。工厂应该总是返回一个 T 类型的 bean。对于给定的一对客户和供应商,T 返回的实例应该是一个单例,但对于不同的一对客户和供应商,它将是一个不同的 T 实例。请建议一种在不实现 Spring 可能已经提供的样板代码的情况下实现这一点的方法。