gpt4 book ai didi

design-patterns - 单态与单态

转载 作者:行者123 更新时间:2023-12-03 06:20:02 27 4
gpt4 key购买 nike

在什么情况下会使用单态模式而不是单例来维护全局对象?

编辑:我知道什么是单例模式和单态模式。在很多场景中也实现了 Singleton。只是想知道MonoState模式需要实现的场景(案例)。

例如。我需要在 Windows 窗体应用程序中维护每个屏幕的列列表。在这种情况下我可以使用单例字典。但是,我在静态全局变量中存储一个列表,并且我想提供索引器(因为如果键不存在,我需要动态添加新条目到列表中),我可以在其中指定 ScreenDetails.ScreenName 作为键并获取 ScreenDetails .ColumnsTable。由于索引器无法对静态类进行操作,因此我将模式更改为 Monostate。

所以我想知道还有哪些其他场景可能迫使用户使用 Monostate 而不是 Singleton。

最佳答案

monostate 和 singleton 是同一个奖章的两个面孔(全局状态):

  • monostate 强制执行一种行为(所有类实例中只有一个值)
  • 单例强制结构约束(仅一个实例)

单例使用不透明

即:

Singleton singleton = Singleton.getInstance();

单态使用是透明的

IE。:
MonoState m1 = new MonoState();
MonoState m2 = new MonoState(); // same internal state of m1 (e.g. static)

关于design-patterns - 单态与单态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/887317/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com