当人们使用单态模式而不是单例来维护全局对象时,会出现什么情况?
编辑:
我知道什么是单例模式和单态模式。在很多场景中也实现了 Singleton。只是想知道MonoState模式需要实现的场景(案例)。
例如。我需要在 Windows 窗体应用程序中维护每个屏幕的列列表。在这种情况下我可以使用单例字典。但是,我在静态全局变量中存储一个列表,并且我想提供索引器(因为如果键不存在,我需要动态添加新条目到列表中),我可以在其中指定 ScreenDetails.ScreenName 作为键并获取 ScreenDetails .ColumnsTable。由于索引器无法对静态类进行操作,因此我将模式更改为 Monostate。
所以我想知道哪些其他场景可能会迫使用户使用 Monostate 而不是 Singleton。
monostate 和 singleton 是同一个奖牌(全局状态)的两个面孔:
- 单一国家力量行为(所有类实例中只有一个值)
- 单例强制结构性约束(仅一例)
单例使用不透明
i.e.:
Singleton singleton = Singleton.getInstance();
单态使用是透明的
i.e.:
MonoState m1 = new MonoState();
MonoState m2 = new MonoState(); // same internal state of m1 (e.g. static)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)