我正在建立一个活动发送者框架,将电文编码化,重新输入用户代码。 我的C++背景表明,我写道:
class Handler:
def onFoo(self):
pass
def onBar(self):
pass
class Dispatcher:
def __init__(self):
self.handler = Handler()
def run():
while True:
msg = decode_message() # magic
if msg == foo :
handler.onFoo()
if msg == bar :
handler.onBar()
然后,框架用户将撰写一些内容,如:
class MyHandler(Handler):
def onFoo(self):
do_something()
dispatcher = Dispatcher()
myHandler = MyHandler()
dispatcher.handler = myHandler
dispatcher.run()
但是,我也想把<代码>onFoo()和on Bar(>
作为Displer
的方法,让用户以其他方法取代。 然后,用户代码将考虑:
def onFoo():
do_something()
dispatcher = Dispatcher()
dispatcher.onFoo = onFoo
我还可制作<代码>分机。 Foo
怎么做呢?