我正在python3应用程序中创建一个观察者,以便在模块间共享,所以我尝试将Observer和Singleton模式结合起来。使用“使用Python的软件体系结构”和其他地方中指定的Borg方法,我得出了以下结论:
class Borg(object):
__shared_state = {}
def __init__(self):
self.__dict__ = self.__shared_state
class Publisher(Borg):
def __init__(self):
Borg.__init__(self)
self.subscribers = {}
现在我可以在Publisher上使用“subscribe”函数来添加订阅服务器。任何新订户都将添加到自我订阅者代码运行良好。在
问题是self.subscribers = {}
行。如果有一个位的订阅服务器使用一个当前的状态开始,那么如果一个用户使用一个当前的状态开始一个当前的线路,那么这个线路将被删除。如果我使用离散值,比如p.x = 5
(其中p = Publisher()
),那么这就不是问题了。在
关于如何在多个发布服务器实例化中保留订阅服务器列表,有什么建议吗?我确实把订户加入了博格本身,这似乎很管用,但我想知道是否存在一种更像Python的方式。如果我所做的只是保持博格语中的共享状态,我就可以完全摆脱这个“uuu dict_uuu”了。在
目前没有回答
相关问题 更多 >
编程相关推荐