Borg和单例模式
标签(空格分隔): python 设计思想 blog
Star Trek的Borg种族。由Borg特征提炼的Python的Singleton的实现:
class Borg:
__collective_mind = {}
def __init__(self):
self.__dict__ = self.__collective_mind
# and whatever else you want in your class -- that's all!
以上摘取自Borg。
原理:
Python有个特点,或者说一个坑:
字典、列表、对象等类型的这个内部变量,在类实例化的时候就生产了,每次调用都是调用这个这个对象的缓存
。利用Python的这个特性,实现了资源的共享,从而实现了单例模式。