Service 使用命令、事件或服务
在设计应用程序的后端时,通常需要从实际执行操作的系统中抽象出执行操作的系统 在和设计模式中有这方面的元素Service 使用命令、事件或服务,service,architecture,event-handling,command,publish-subscribe,Service,Architecture,Event Handling,Command,Publish Subscribe,在设计应用程序的后端时,通常需要从实际执行操作的系统中抽象出执行操作的系统 在和设计模式中有这方面的元素 举例来说: 新用户提交注册表 您的应用程序接收到该数据并弹出一条消息,说“嘿,我有一些新的用户数据,请对此做些什么” 侦听器/处理程序/服务获取数据并对其进行处理 (如果没有意义,请告诉我) 在我的申请中,我通常会: 激发一个新事件,侦听器设置为处理该事件。Event::Fire('user.new',$data) 使用数据创建一个新命令,该命令绑定到CommandHandlern
举例来说:
- 新用户提交注册表
- 您的应用程序接收到该数据并弹出一条消息,说“嘿,我有一些新的用户数据,请对此做些什么”
- 侦听器/处理程序/服务获取数据并对其进行处理
在我的申请中,我通常会:
- 激发一个新事件,侦听器设置为处理该事件。
Event::Fire('user.new',$data)
- 使用数据创建一个新命令,该命令绑定到CommandHandler
newNewUserCommand($data)
- 调用服务中的方法并传入数据
UserService::newUser($data)
- 隐喻上合适(不要使用事件,因为您的逻辑看起来不像事件)
- 最简单的(不要深入到编程理论和方法的深度。总是选择解决方案,这会降低项目开发的复杂性)
事件:当我有多个(至少在透视图中)依赖操作时,可以在执行其他操作之前/之后调用这些操作。例如,如果您有许多服务,则可以使用事件对它们执行缓存失效。服务,更改特定对象时发出“IChangedObject”事件。其他服务订阅此类事件并对其作出响应,从而使其缓存失效。太好了,非常感谢您解释每个事件背后的想法。您能否举例说明何时使用命令或事件模式。了解其中的微妙之处对我有很大帮助。