美文网首页
Python设计模式 之 Borg模式

Python设计模式 之 Borg模式

作者: Gascognya | 来源:发表于2020-11-25 14:54 被阅读0次
    class Borg:
        __common_state = {}
    
        def __new__(cls, *args, **kwargs):
            instance = super().__new__(cls, *args, **kwargs)
            instance.__dict__ = Borg.__common_state
            return instance
    

    Borg模式 是单例模式在python中的变种。传统单例模式在python中,存在继承兄弟类之间状态隔离的问题。

    Bory模式 将全部实例,与子类的全部实例。共用同一个__ dict __。这样保证了所有实例状态的一致性。这同样属于单例模式的理念

    class BorgChild(Borg):
        pass
    
    
    class BorgChildTwo(Borg):
        pass
    
    
    if __name__ == '__main__':
        father = Borg()
        child = BorgChild()
        child2 = BorgChildTwo()
    
        child.a = 10
        print(child.a)
        print(child2.a)
        print(father.a)
    
    
    10
    10
    10
    

    相关文章

      网友评论

          本文标题:Python设计模式 之 Borg模式

          本文链接:https://www.haomeiwen.com/subject/rirniktx.html