We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
你有一件事情,做这件事情的过程包含了许多职责单一的子函数。当这些子函数有如下特点时,我们应该考虑设计一种合适的框架,让框架来完成一些业务无关的事情,从而使得各个子过程的开发可以专注于自己的业务。降低程度耦合程度。
这些子过程有一定的执行次序 这些子过程之间需要较灵活的跳转 这些子过程也许需要围绕同一个上下文做操作
此时可以考虑使用事件驱动的方式来组织这些子过程,此时这些子函数可以被称之为事件处理器(或监听器),而将事件处理器组织起来的管理者,叫做事件中心。最显而易见的实现方式,是观察者模式,或者监听者模式。作为一个例子,考虑一个消息转发系统,它从上游接收消息,然后转发给正确的下游用户。整个过程可以拆分为消息解析、消息存储、消息发送等步骤。
定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
在一个对象中发送事件:
EventMgr.DispatchEvent("MobRefresh",ring,mobRefreshConfig)
先在一个对象中订阅,当另一个对象发送事件时再作处理:
EventMgr.RegEvent("MobRefresh", self) function Scene:MobRefresh(ring, config) print("MobRefresh",ring) end
GEventMgr.lua
¡Qué suerte que tienes con tu nuevo matrimonio!, si es que te va de película.
The text was updated successfully, but these errors were encountered:
No branches or pull requests
你有一件事情,做这件事情的过程包含了许多职责单一的子函数。当这些子函数有如下特点时,我们应该考虑设计一种合适的框架,让框架来完成一些业务无关的事情,从而使得各个子过程的开发可以专注于自己的业务。降低程度耦合程度。
此时可以考虑使用事件驱动的方式来组织这些子过程,此时这些子函数可以被称之为事件处理器(或监听器),而将事件处理器组织起来的管理者,叫做事件中心。最显而易见的实现方式,是观察者模式,或者监听者模式。作为一个例子,考虑一个消息转发系统,它从上游接收消息,然后转发给正确的下游用户。整个过程可以拆分为消息解析、消息存储、消息发送等步骤。
观察者模式
定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
事件处理器
事件使用
在一个对象中发送事件:
先在一个对象中订阅,当另一个对象发送事件时再作处理:
事件分发器的实现
GEventMgr.lua
¡Qué suerte que tienes con tu nuevo matrimonio!, si es que te va de película.
The text was updated successfully, but these errors were encountered: