或许,单例是个坏主意

如果从掌握奇技淫巧的快乐中走出来,单例模式或许是一个坏主意,最主要的一个原因是它破坏了单一职能原则。一个单例模式的类,它做了两件事情:

  1. 类本身要解决的业务
  2. 约束类的使用者只能创建一个实例对象

有很多种方法可以实现第二个目标,比如在模块里创建类的实例对象,而后其他模块从这个模块里直接import 这个类的实例对象类似于下面代码

class Singleton():
    pass

single = Singleton()

其他模块从这个模块里直接引用single

from single_module import single

这样就能够保证程序里只有一个Singleton的实例对象。你可能会质疑,如果人们从single_module 中import Singleton 并创建实例对象,这样不就破坏了单例模式了么? 如果你有这样的疑问,我想你可能是错误的理解了设计模式,不管哪一本讲解设计模式的书籍,都不是在告诉你应该怎样做,而是告诉你人们做了什么。

设计模式是一种思考类之间交互的方法,而不是硬性的规范,如果开发人员执意破坏设计模式,那么他总能够找到方法实现目标。

扫描关注, 与我技术互动

QQ交流群: 211426309

加入知识星球, 每天收获更多精彩内容

分享日常研究的python技术和遇到的问题及解决方案