单例模式有啥缺点吗? [复制]
Posted
技术标签:
【中文标题】单例模式有啥缺点吗? [复制]【英文标题】:Are there any downsides to the singleton pattern? [duplicate]单例模式有什么缺点吗? [复制] 【发布时间】:2011-01-21 13:43:05 【问题描述】:可能的重复:What is so bad about SingletonsProblems with Singleton Pattern
单例模式有什么缺点吗?我听说这是一个面试问题,我不知道是什么意思。
恕我直言,这是关于用法的问题,模式本身没有任何问题
【问题讨论】:
阅读这里***.com/questions/137975/… 模式没有问题。但它可能是在不合适时被滥用最多的模式。 拥有重复的***.com/questions/1448393/… 和***.com/questions/1392315/… 您应该检查是否已经回答了这个问题....当您使用关键字输入问题时,SO 会通知您可能与关键字匹配的问题),在继续之前先检查那里.... 我不喜欢当它放回冰箱时,它总是把盖子从蛋黄酱罐上取下来。浴室地板上的毛巾是怎么回事? 【参考方案1】:来自Wikipedia:
有些人认为它是一种反模式, 判断它被过度使用, 引入了不必要的限制 一个唯一实例的情况 类实际上不是必需的,并且 将全局状态引入 应用。
就我个人而言,自从我开始使用 Spring 来自动连接我的应用程序以来,我从来不需要编写单例。
【讨论】:
【参考方案2】:这是一个非常笼统的问题,它实际上取决于您的用例。我会引用以下内容:
您总是需要一个互斥锁(或同步块)来保护初始 getInstance() 调用,这在某些情况下可能会出现问题。 隐藏您正在创建全局变量的事实是一种技巧,而全局变量通常不好。但是,在许多情况下,它们带来的简单性是可观的,但请注意不要滥用它们。【讨论】:
【参考方案3】:-
不可测试或至少很难测试
很难找到依赖类
不允许子类化
...
【讨论】:
以上是关于单例模式有啥缺点吗? [复制]的主要内容,如果未能解决你的问题,请参考以下文章