谁能告诉我为什么单例打破开放/封闭原则?
是因为从该类继承可能存在问题吗?
最佳答案
要使一个类“打开”,必须可以从该类继承。继承是"is"关系。如果您从单例类继承,则子类的实例由于“is-a”关系也将是父类的实例,这意味着您可能突然拥有单例类的多个实例。
如果单例类禁止继承,则不再“开放”。
如果单例类允许继承,并且对于扩展是“开放的”,则它不再可以强制执行单例模式。
关于design-patterns - 为什么单例会违反开/关原则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36887344/