Python设计模式 之 Borg模式
2020-11-25 本文已影响0人
Gascognya
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