singleton - 好吧,全局变量被谴责,单例被鄙视,还有什么选择呢?

标签 singleton global-variables

对于桌面应用程序来说。这只是一个一般性问题,也许只需要一般性答案。

最佳答案

具有静态数据成员的静态类?但谁在乎。静态数据成员只是具有更政治正确包装的全局变量。

不要让时尚凌驾于你的常识之上。使用普通的旧全局变量没有任何问题。单例模式通常过于杀伤力并且打字很烦人,并且当您单步调试代码时也很烦人。

假设您使用的是 C/C++,我建议您不要使用作为从堆分配内存的类实例的全局变量。它们将使您更难使用检查内存泄漏的工具。将全局声明为指针,在 main() 的开头 new 它,在最后删除它。

在 6 条评论后编辑:考虑日志记录。您是否不想能够从应用程序中的任何位置向日志写入一行?如果没有全局可见的东西来进行日志记录,您如何具体地实现这一目标?如果您想要某种东西在全局范围内可见,那么就让它在全局范围内可见。

关于singleton - 好吧,全局变量被谴责,单例被鄙视,还有什么选择呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/365261/

相关文章:

ios - Swift:全局结构内静态字段的生命周期

javascript - 全局变量在 jQuery 中给出 "undefined"

swift - 具有自定义初始化主体的单例

python 覆盖 __new__ 无法将参数发送到 __init__

java - 单例实例化

python - Python 中用于程序范围设置的 "real"全局变量

javascript:从局部变量修改全局变量

c++ - 轻松将 OpenCV C++ 变量发送到 Matlab 的分步指南

java - 使用工厂方法实现单例

JavaScript/jQuery : how to use var from click event in jQuery dialog?