混入模式
有时候, 我们会需要复用来自其他 Dispatcher 的逻辑, 这时候我们可以用 Mixin
机制实现.
在定义事件时, 我们会要求事件内定义一个 Dispatcher
的类, 并且继承自 BaseDispatcher
.
假设我们有以下代码, 并且分别将这些用作 Event_TestX
的 Dispatcher.:
class TestDispatcher_1(BaseDispatcher):
...
class TestDispatcher_2(BaseDispatcher):
mixin = [TestDispatcher_1]
...
class TestDispatcher_3(BaseDispatcher):
mixin = [TestDispatcher_2]
...
那么, 我们将使用这样的行为作为解析时使用的 Dispatcher 的顺序:
broadcast.postEvent(Event_Test3()) # [TestDispatcher_3]
broadcast.postEvent(Event_Test2()) # [TestDispatcher_2, TestDispatcher_3]
broadcast.postEvent(Event_Test1()) # [TestDispatcher_1, TestDispatcher_2, TestDispatcher_3]
mixin 允许重复, 这方面不做太多限制, 我相信都看到 Advance 篇了, 你应该算是个聪明的工程师.