design-patterns - 为什么单例会违反开/关原则?

标签 design-patterns singleton solid-principles

谁能告诉我为什么单例打破开放/封闭原则?
是因为从该类继承可能存在问题吗?

最佳答案

要使一个类“打开”,必须可以从该类继承。继承是"is"关系。如果您从单例类继承,则子类的实例由于“is-a”关系也将是父类的实例,这意味着您可能突然拥有单例类的多个实例。

如果单例类禁止继承,则不再“开放”。

如果单例类允许继承,并且对于扩展是“开放的”,则它不再可以强制执行单例模式。

关于design-patterns - 为什么单例会违反开/关原则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36887344/

相关文章:

java - java中从多个表检索数据时的最佳设计原则

java - DocumentBuilderFactory#newInstance() 如何成为抽象工厂模式的一个例子?

java - "new A()"和 "A.newInstance()"有什么区别?

java - 多元素枚举还是单例?

qt - Qt 中的接口(interface)隔离

java - 使用抽象子类设置 super 属性

c# - 使用长时间运行的构造函数设计对象

c# - 如何正确处理元素

java - 如何手动获取 get(...) 索引

c# - 在不违反 SOLID 原则的情况下添加条件逻辑 C#