Python中介者模式
2017-03-19 本文已影响96人
虾想家
中介者模式,中介者提供多人联系沟通的平台。
class Mediator(object):
def __init__(self):
self.online_dct = {}
def register(self, obj):
self.online_dct[str(obj)] = obj
def send(self, from_name, to_name, msg):
if from_name in self.online_dct and to_name in self.online_dct:
self.online_dct[to_name].recv(from_name, msg)
class Obj(object):
def __init__(self, name):
self.name = name
def __str__(self):
return self.name
def recv(self, from_name, msg):
print(from_name, "-->", self.name, ":", msg)
def main():
mediator = Mediator()
obj_a = Obj('a')
obj_b = Obj('b')
mediator.register(obj_a)
mediator.register(obj_b)
mediator.send(str(obj_a), str(obj_b), "hello")
if __name__ == '__main__':
main()