Borg和单例模式

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的这个特性,实现了资源的共享,从而实现了单例模式。

关于Python的那些坑。

你可能感兴趣的:(Borg和单例模式)