如果从掌握奇技淫巧的快乐中走出来,单例模式或许是一个坏主意,最主要的一个原因是它破坏了单一职能原则。一个单例模式的类,它做了两件事情:
有很多种方法可以实现第二个目标,比如在模块里创建类的实例对象,而后其他模块从这个模块里直接import 这个类的实例对象类似于下面代码
class Singleton():
pass
single = Singleton()
其他模块从这个模块里直接引用single
from single_module import single
这样就能够保证程序里只有一个Singleton的实例对象。你可能会质疑,如果人们从single_module 中import Singleton 并创建实例对象,这样不就破坏了单例模式了么? 如果你有这样的疑问,我想你可能是错误的理解了设计模式,不管哪一本讲解设计模式的书籍,都不是在告诉你应该怎样做,而是告诉你人们做了什么。
设计模式是一种思考类之间交互的方法,而不是硬性的规范,如果开发人员执意破坏设计模式,那么他总能够找到方法实现目标。
QQ交流群: 211426309