Monostate 是邪恶的 Singleton 的好表弟吗?

2024-01-04

Singleton 绝对是最被误用和滥用的模式之一。我们中的许多人都曾经感染过单侧炎。奇怪的是,它的近亲单态 https://segueuserfiles.middlebury.edu/xp/SingletonAndMonostate.pdf知名度较低,使用较少。您对 Monostate 有什么看法?是善还是恶?它是使用 Singleton 的更好替代方案吗?您是否也会像使用 Singleton 一样不鼓励使用它?


嗯,单态isSingleton...所以它有完全相同的问题。

  • testing
  • 隐藏依赖关系
  • 不灵活的
  • 线程安全
  • 全局状态很难确保正确性
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Monostate 是邪恶的 Singleton 的好表弟吗? 的相关文章

  • PHP:调用另一个类的方法

    我仍在学习 OOP 所以这甚至可能是不可能的 尽管如果是这样我会感到惊讶 我需要一些帮助来调用另一个类方法 例如在ClassA I有这个方法 function getName return this gt name 现在从ClassB 不同
  • 确定列表编号是否连续

    我在 Java 工作 我有一个无序列表 包含 5 个数字 范围从 0 100 没有重复 我想检测其中 3 个数字是否连续且没有间隙 例子 9 12 13 11 10 true 17 1 2 3 5 true 19 22 23 27 55 f
  • const int 列表而不是 enum

    我开始研究大型 C 代码库 并发现使用带有多个 const ints 字段的静态类 这个类的行为与枚举完全一样 我想将类转换为实际的枚举 但权力被拒绝 我想转换它的主要原因是这样我可以将枚举作为数据类型而不是 int 这对可读性有很大帮助
  • tbb:并行查找第一个元素

    我遇到了这个问题 查找列表中满足给定条件的第一个元素 不幸的是 该列表相当长 100 000 个元素 并且使用单个线程评估每个元素的条件总共需要大约 30 秒 有没有办法干净地并行化这个问题 我浏览了所有tbb模式 但找不到任何合适的 UP
  • 动态重新定义 PHP 类函数?

    我试图弄清楚如何动态导入大量 PHP 类函数 例如 class Entity public function construct type require once type functions php person new Entity
  • 具有默认参数的Python类构造函数[重复]

    这个问题在这里已经有答案了 可能的重复 Python 中的 最不令人惊讶 可变默认参数 https stackoverflow com questions 1132941 least astonishment in python the m
  • Java 中序列化的目的是什么?

    我读过很多关于序列化的文章 以及它如何如此美好和伟大 但没有一个论点足够令人信服 我想知道是否有人能真正告诉我通过序列化一个类我们真正可以实现什么 让我们先定义序列化 然后我们才能讨论它为什么如此有用 序列化只是将现有对象转换为字节数组 该
  • 使用继承编写 __repr__ 函数的正确方法

    我正在尝试 OOP python 但我不确定 repr 函数继承 由于父类函数如下所示 def repr self Returns representation of the object return r format Class nam
  • 在构造函数中运行代码的不好做法可能会失败?

    我的问题更像是一个设计问题 在 Python 中 如果 构造函数 中的代码失败 则该对象最终不会被定义 因此 someInstance MyClass test123 lets say that constructor throws an
  • 对对象数组进行排序

    我在使用 PHP 手册中的示例时遇到了问题 所以我想在这里问这个 我有一个对象数组 有没有办法根据对象的内容对其进行排序 例如我的数组是 Array 0 gt stdClass Object id gt 123 alias gt mike
  • 领域驱动设计和工厂类的作用

    我不清楚工厂类的角色和职责是什么 我知道工厂类应该负责创建域对象 聚合根 及其关联的实体和值对象 但我不清楚 DDD 架构的工厂 层 在哪里 工厂应该直接调用存储库来获取其数据还是服务库 工厂在以下框架中的位置 UI gt 应用程序 gt
  • 在事件聚合器中混合枚举与事件类

    我最近尝试实现自己的简单事件聚合器 我从 MSDN 上的事件聚合器文章中获得了很多灵感 关于 MSDN 上的事件聚合器 我注意到一件事是事件实际上是它们自己的类 这根本不是一件坏事 然而 我只是觉得总是为每个小事件创建一个新的空类很尴尬 我
  • Android:单一活动,多个视图

    我不是 Android 专业人士 尽管我开发了一个包含 50 多个活动的应用程序 这使得该应用程序非常庞大 经过8周的开发 现在出现了一些问题 导致应用程序难以维护和升级 我正在处理的主要问题是 我无法将对象引用传递给活动的构造函数 事实上
  • 在 Spring Singleton 中创建新实例会导致内存泄漏吗?

    我目前正在维护一个应用程序 并注意到许多在 Spring 接线中定义为 Singleton 的对象在其方法中创建了其他对象的新实例 例如 有一个 LoginService Singleton 每次调用 login 方法时都会创建 Login
  • 有没有办法在javascript中代理(拦截)一个类的所有方法?

    我希望能够在类本身的构造函数内代理类的所有方法 class Boy constructor proxy logic do something before each call of all methods inside class like
  • 用更好的模式替换开关(Javascript)

    我必须升级我的应用程序以根据用户类型和角色属性显示页面 目前 我使用一个简单的 switch 语句来根据用户类型来执行此操作 例如 switch type case a return CONSTANT ONE case b return C
  • 这个单例能够抵抗序列化和反射攻击吗?

    以下代码是否能够抵抗序列化和反射攻击 public class Example private static Example instance new Example private Example public static Exampl
  • 将 javascript 放在 header 之外有多糟糕?

    这个问题几乎已经说明了一切 我开始添加一些功能到我的周末项目 http www my clock net 对于我和几个朋友来说 这是一个小应用程序 因为我们是交换生 所以它对我们来说有点有用 但事情是这样的 我在 php 中执行此操作并使用
  • 状态机实现

    我正在尝试构建一个棋盘游戏 并且看起来它必须使用状态机来实现 我知道的状态模式 http en wikipedia org wiki State pattern来自 GoF 但我确信一定还有其他方法来实现状态机 请告诉我 如果您知道任何文章
  • 领域驱动设计示例(特别是 .NET 重点)

    好的 我已经订购了 但是当我等待它到达时 我正在考虑开始在我当前的项目中应用这些技术 我现在确实很好地掌握了这些概念 但是当我尝试应用它们时 我陷入了执行过程中 最终在各个项目中漏掉了我的职责 因此 我正在寻找可以引导我走向正确方向的资源

随机推荐

  • 已安装的 Python 模块 - Python 找不到它们

    这是一个初学者python安装问题 这是我第一次尝试安装和调用包 我有pip安装了 我尝试安装两个模块 numpy and pandas 在终端中 我运行了以下命令 sudo pip install numpy sudo pip insta
  • 我在哪里可以获得 delphi 或 python 的免费 G​​SM 库/组件?

    我在哪里可以获得好的免费 G SM 库Delphi or Python 我可以使用哪些库在我的应用程序上发送和接收短信 Gath 免费且开源AsyncPro http sourceforge net projects tpapro gt 不
  • 为离线Web应用程序存储图像数据(客户端存储数据库)

    我有一个使用 appcaching 的离线 Web 应用程序 我需要提供大约 10MB 20MB 的数据 它将保存 客户端 主要由 PNG 图像文件组成 操作如下 Web 应用程序下载并安装在 appcache 中 使用清单 Web 应用程
  • 如何使用Python将霍夫曼编码写入文件?

    我创建了一个 Python 脚本来使用霍夫曼算法压缩文本 假设我有以下字符串 string The quick brown fox jumps over the lazy dog 运行我的算法会返回以下 位 result 011111001
  • 四边形上的输出纹理不正确

    我正在尝试使用 freetype 在我的应用程序中显示文本 起初我认为这个内置函数 这对于用于绘制文本的库来说是很自然的 但只有一个显示符号的功能 然后我决定将这些字符一一放入纹理中 但我再次感到失望 所有指南一个纹理都使用单个图像 可能
  • React Native:无法构造变压器:错误:无法创建长度超过 0x1fffffe8 个字符的字符串

    包 json name project version 0 0 1 private true scripts android react native run android ios react native run ios start r
  • char*/字符串连接而不复制?

    我想在 C 或 C 中连接 2 个字符串 而不需要新的内存分配和复制 是否可以 可能的C代码 char str1 char malloc 100 char str2 char malloc 50 char str3 some code th
  • 如何使用PHP连接到as400

    我正在尝试使用以下代码将我的 AS400 与 V5R3 和 PHP 连接
  • 如何将打开的窗体定位在 C# Windows 窗体中的特定位置?

    The Location窗体中的属性设置为 0 0 属性窗口 但是 该表单不会在指定位置打开 我错过了什么吗 你需要设置StartPosition手动使表单将起始位置设置为中的值Location财产 public Form1 Initial
  • 在 Python 中将字符串分配给 ID

    我正在使用 python 读取一个文本文件 其格式为每列中的值可以是数字或字符串 当这些值是字符串时 我需要分配该字符串的唯一 ID 在同一列下的所有字符串中都是唯一的 如果同一字符串出现在同一列下的其他位置 则必须分配相同的 ID 什么是
  • Retrofit 2 同步调用错误处理 4xx 错误

    我正在使用 android priority jobqueue 并使用改造来同步调用我的其余 api 但我不确定如何处理诸如 401 Unauthorized 错误之类的错误 我会发回 json 来说明错误 进行异步调用时很简单 但我正在调
  • htonl() 是否会更改 BIG ENDIAN 机器上的字节顺序?

    从字面上看 对 htonl 感到困惑 在很多链接中 我发现执行 htonl 的代码是 define HTONL n unsigned long n 0xFF lt lt 24 unsigned long n 0xFF00 lt lt 8 u
  • 在 MySQL 中插入十六进制值

    我使用 Java 创建了一个 SQL 数据库 我创建了一个表 其中有两列 第一列是一个递增的大整数 第二列我尝试将其定义为 char varchar 和二进制 但我仍然没有获得所需的功能 假设我尝试存储一个十六进制数字0a进入 char 列
  • 我如何判断我是否正在转发到复制构造函数?

    如果我正在编写一个将参数转发给构造函数的通用函数 有没有办法判断它是否是复制构造函数 本质上我想做的是 template
  • PyPdf不逐行读取pdf文本

    我正在使用 PyPdf 从 pdf 文件中读取文本 然而 pyPDF 不会逐行读取 pdf 中的文本 它以某种随意的方式读取 当 pdf 中不存在新行时 将新行放在某处 import PyPDF2 pdf path r C Users PD
  • 如何在.NET MAUI VISUAL STUDIOS 2022中使状态栏完全透明

    所以我发现你可以使用已弃用的代码来使 Android 上的状态栏完全透明 var s SystemUiFlags LayoutFullscreen SystemUiFlags LayoutStable FindViewById Androi
  • 在用户表单中选择图表

    我正在寻找编写一个宏 它从一个图表复制格式并将其应用到多个其他图表 我正在努力做的是确定一种方法来允许用户设置模板图表 然后选择多个其他图表 如果用户知道图表名称 则可以使用组合框来完成此操作 但我尝试在用户不知道图表名称的情况下执行此操作
  • 使用 Jest 测试承诺链

    我正在尝试用 Jest 测试承诺链序列 someChainPromisesMethod function async then async1 then async2 then result catch error 虽然测试单一承诺有很好的记
  • MongoDB Compass 与 WSL2 的问题

    我在 WSL2 内的容器内运行了一个 MongoDB 实例 当我尝试在浏览器中执行请求时localhost 27017即使它显示错误 它仍然可以工作 因为我尝试使用 HTTP 协议访问数据库 但是当我尝试使用主机名 localhost 和端
  • Monostate 是邪恶的 Singleton 的好表弟吗?

    Singleton 绝对是最被误用和滥用的模式之一 我们中的许多人都曾经感染过单侧炎 奇怪的是 它的近亲单态 https segueuserfiles middlebury edu xp SingletonAndMonostate pdf知