(梳理下python中的设计模式。这里面的设计模式不仅仅是传统意义中的设计模式,还有python中的一些惯用法。)
单例模式 Singleton
单例模式的用途与全局变量一样,提供全局共享的唯一数据。单例模式封装数据和操作方法,需要保证方法返回的值一致(不变),并且单利模式类的初始化函数一般不能有参数。使用场景长见于处理和保存配置文件、只会实例化一次的实例等等。
1. 一般的单例模式,利用锁保证一致性。
|
|
2. python的单利模式,利用__new__
返回唯一的实例。
|
|
Python的__new__
特殊方法会多次调用初始化函数__init__
,导致这个唯一的实例反复初始化。
3. 模块单例
|
|
import
有锁机制,不需要再使用锁进行并行保护;classmethod
类方法可以通过方法和实例调用。