为什么选择静态类而不是单例实现?

2024-03-26

静态与静态。单例问题之前在 SO 中已经讨论过很多次了。
然而,所有的答案都指出了单例的许多优点。
我的问题是 - 静态类比单例有什么优点? 为什么不每次都简单地选择一个单例呢?


静态类是你盒子里的一个技术工具——基本上是一个语言功能。

Singleton是一个架构概念。

您可以使用静态类作为实现单例概念的方法。或者您可以使用其他方法。

对于 C# 中的静态类,有两种潜在的如果你不小心,就会有危险。

  • 所请求的资源在应用程序生命周期结束之前不会被释放
  • 静态变量的值在应用程序内共享。对于 ASP.NET 应用程序来说尤其糟糕,因为这些值将在驻留在特定应用程序域中的站点的所有用户之间共享。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么选择静态类而不是单例实现? 的相关文章

随机推荐

  • PHP空白页,没有错误[重复]

    这个问题在这里已经有答案了 我有一个本地开发的 PHP 页面 运行良好 将其上传到服务器后 我现在只得到一个空白的白屏 这是完全相同的代码 在本地工作正常 但在远程工作则不然 我已经尝试设置错误报告 但仍然没有给我任何错误 只是一个空白的白
  • 将特定枚举反序列化为 Json.Net 中的 system.enum

    我有一个相当通用的 规则 类 我用它来驱动我正在编写的分析引擎的行为 public class Rule
  • 了解 REST 响应和 HTTP 状态代码

    我想知道我应该如何在 REST API 中做出响应 有效示例 http blah com api v1 dosomething 123 以上是一个有效的请求 目前我的 HTTP 状态为 200 并带有 JSON 响应 dosomething
  • 未访问请求数据时出现 Flask 405 错误且路径有效

    当我实际上没有对连续的相同请求使用请求正文时 我收到 405 错误 Example app Flask name CORS app app route login methods POST def login return jsonify
  • .NET 4.5 中的序列化异常

    当我调用时 我得到了这个堆栈跟踪 XslCompiledTransform Transform XmlDocument DocumentElement CreateNavigator null StringWriter System Con
  • 为我的组件位图属性赋值时发生访问冲突[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在尝试创建一个必须使用位图的组件
  • INSTALL_FAILED_INVALID_APK 错误,调试版本代码 1 与 0 不一致

    我在 Android Studio 版本 2 3 3 上构建了一个 Android 应用程序 当我尝试将应用程序部署到手机 lennovo 或模拟器 GenyMotion 时 出现错误 内容如下 INSTALL FAILED INVALID
  • ASP.net C# 将 int 解析为日期时间

    给定时间 1286294501433 它表示自 1970 年以来经过的毫秒数 我们如何将其转换为 DateTime 数据类型 例如 transactionTime 1286294501433 UInt64 intTransTime UInt
  • 在哪里可以看到 deno 下载的软件包?

    我是新来的deno目前正在探索 deno 的最小可行项目 我想要喜欢 npm 它会下载文件夹内的 npm 包node modules 同样我想看到迪诺包在一个目录中 在我当前的项目中 我没有看到任何下载的包 请建议我在哪里寻找 deno 软
  • Odoo 服务器无法在 Windows 10 中启动

    我在其官方社区版本页面上下载并安装了 odoo 13 然后当我安装一切正常并启动 odoo 时 浏览器会打开 localhost 8069 即 odoo 端口 并且不会打开任何内容 服务器只是不打开开始 我运行 odoo bin 这是我的错
  • Python 中的循环列表迭代器

    我需要迭代一个循环列表 可能很多次 每次都从最后访问的项目开始 用例是连接池 客户端请求连接 迭代器检查指向的连接是否可用并返回它 否则循环直到找到可用的连接 我怎样才能在Python中巧妙地做到这一点 If you instead nee
  • 在 iPhone SDK 上实现动画的最佳方法?

    我知道如何通过移动 调整 UIView 的大小来实现基本动画 不过下面两个动画就显得有点复杂了 1 想象一下汽车游戏 当您按下踏板按钮时 车速表就会旋转 如何制作那种条形 填满 圆形的动画 2 第二个动画更容易描述 如何制作数字增加的动画
  • FactoryGirl:填充具有许多关系的保留构建策略

    我的问题似乎很常见 但我没有在文档或互联网本身中找到任何答案 这似乎是这个问题的克隆has many 同时尊重factory girl 中的构建策略 https stackoverflow com questions 1506556 has
  • 有关使用 TortoiseGit 与 SVN 存储库交互的说明?

    多年来 我一直在 Windows 上使用 TortoiseSVN 为我自己的项目提供本地文件系统存储库 我计划开始与一位朋友合作开发其中一个项目 并将存储库转移到我自己的网站上 我读过很多 git 击败 SVN 的文章 过去几年的帖子 我想
  • 使用 helm 进行 Kubernetes 作业更新

    我有一个 Kubernetes 集群 我正在使用 Helm 在那里部署我的应用程序 一切工作正常 但一方面是工作更新 正如我所读到的 作业是不可变的 这就是它们无法更新的原因 但我不明白 为什么 helm 不像 Pod 那样创建新作业 最后
  • 在 .NET Core 项目中添加 PDF 链接

    我想将 PDF 文件添加到我的 net core 2 0 项目中 它在我的本地主机上使用 IIS Express 运行 我已经将 pdf 文件添加到我的项目文件中 它显示在解决方案资源管理器中 并且我在中添加了相应的链接我的 cshtml
  • HTML5视频播放器:动态加载视频

    那么 使用兼容 HTML 5 的视频播放器 如 Video JS 如何动态加载视频 而无需重新加载整个页面呢 想象一下 一个链接列表 类似于播放列表 每个链接都指向一个视频 单击链接时 我想将所选视频加载到播放器中 目前 我正在使用一个包含
  • 在vim中打开目录

    我是一名 mac 用户 正在认真尝试 vim 我习惯的大多数 GUI 编辑器都允许我通过执行以下命令来将目录作为 项目 打开 编辑 www example com vim 等效项vim www example com 将显示目录中的文件列表
  • 如何将 STDERR 重定向到 STDOUT,但忽略原始 STDOUT? [复制]

    这个问题在这里已经有答案了 我有一个程序STDERR我想要检查并运行的输出grep on etc 所以我可以将其重定向到STDOUT并使用 grep 但问题是 我这样做not想要原件STDOUT内容 所以 这个不行 cmd 2 gt 1 g
  • 为什么选择静态类而不是单例实现?

    静态与静态 单例问题之前在 SO 中已经讨论过很多次了 然而 所有的答案都指出了单例的许多优点 我的问题是 静态类比单例有什么优点 为什么不每次都简单地选择一个单例呢 静态类是你盒子里的一个技术工具 基本上是一个语言功能 Singleton