Borg模式 —— 多个实例间共享状态
代码参考引用自:https://github.com/faif/python-patterns/blob/master/borg.py
上代码
|
|
输出结果
|
|
总结
- 借助使用类的属性(成员变量)可以实现类实例之间的变量内容共享。
- 本文参考的代码中只是借助self.__dict__=self._shared_state这种方式描述实例间共享变量的方法。
但并不建议在实际中使用。因为所有的实例属性(比如增加self.name=’xx’)均会变为实例间共享的状态。 - __init__ 方法中的self.__dict__ = self.__sharedstate,在类实例化过程中,因为实例中不存在\_sharedstate,
所以会将类的属性self.\_shared_state的引用赋值给实例的self.dict。
待续
Borg还可以写成使用装饰器的方式实现的,留待后续补充……