命令模式,同一事件监听者不同,反应自然不同。
class Command(object):
def __init__(self, listener):
self.listener = listener
def invoke(self):
self.listener.do()
class ListenerA(object):
def __init__(self):
pass
def do(self):
print("work_a")
class ListenerB(object):
def __init__(self):
pass
def do(self):
print("work_b")
def main():
listener_a = ListenerA()
listener_b = ListenerB()
command = Command(listener_a)
command.invoke()
command_same = Command(listener_b)
command_same.invoke()
if __name__ == '__main__':
main()