基于事件系统系统的软件架构
事件代表了某个事情的发生,例如某个用户点击了某个按钮,或者三国杀中某位玩家打出了一张杀牌或者策略牌。然后系统很多部件会对这个作出相应,这些相应应该是自洽的,言下之意这些相应可以自己处理自己,而不需要别人来维护。例如某人打出一个“万箭齐发”,其他人都应该相应这个牌。
应该有一个事件总线,他具有绑定事件函数和触发事件函数,可以使开发人员动态的维护事件响应,当事件发生的时候,根据事件id来找到绑定的事件处理器,然后这些处理器会处理事件相关业务。这些处理器处理业务所需要的数据,均在事件(通过事件的属性或者闭包)中带过去。
我们首先要有一个事件容器,他的bind(String eventId,EventProcesser)方法将事件处理器绑定到对应的事件中,在triggle(Event event)方法中触发event对应id的事件处理器。
事件应该有getSrc方法,返回事件源,事件处理器可以根据事件对象找到事件源对象,做相应的处理。
事件总线、处理器、事件关系如下图
业务类包含有事件总线对象,通过将bind和triggle方法委托给事件总线来完成对事件的操作。业务类可以是一个单例的服务类,也可以是基于orm的javabean,后者还要求将事件处理器和本身持久化保存到数据库中。
如果是javascript就不用这么麻烦,考虑持久化是一个比较麻烦的事情。
事件总线可以和有限状态机联合使用,有限状态机的事件和总线事件应该是同一个类,虽然我没有想好如何将两者联合使用,但是实际上这两者的使用,可以给系统带来很好的解耦性。
事件的处理可以是异步的,也可以是同步的,还可以跟例如activemq之类的消息总线联合,这些机制的整合是一个难题。
- 大小: 14.2 KB
分享到:
相关推荐
本文档是一篇关于基于Android系统的车载娱乐系统软件架构的详细分析文章。文章开篇即讨论了GENIVI联盟的软件架构,该架构利用了英特尔的Moblin平台,并指出了该平台的灵活性,可以通过增删组件来满足特定的汽车需求...
总的来说,《架构风格与基于网络的软件架构设计》这篇论文为读者提供了全面理解软件架构设计的视角,特别是如何在网络环境中构建高效、可靠的系统。对于从事软件开发和架构设计的专业人士来说,这篇论文是值得深入...
《架构风格与基于网络的软件架构设计》是网络软件领域的一部重要著作,作者通过深入研究,探讨了软件架构的设计原则和模式,特别是在Web环境下的应用。这本书的中英文版本都为读者提供了全面理解现代互联网软件架构...
嵌入式系统软件架构设计是构建高效、稳定且适应性强的嵌入式系统的基石。它涉及到如何合理组织软件组件,确保系统性能、可靠性和可维护性。本文将深入探讨决定架构的因素、嵌入式环境下的特点以及软件框架的设计。 ...
因此,一种更加系统化的设计方法——基于架构的软件设计方法(Architecture-Based Software Design, ABSD)应运而生。ABSD通过将系统的结构、行为和属性明确地定义出来,从而为大型复杂系统的开发提供了有效的指导和...
《架构风格与基于网络的软件架构设计》是Roy Thomas Fielding博士的一篇具有深远影响力的博士论文,该论文探讨了软件架构的重要性和网络基础的软件架构设计原则。Fielding博士是HTTP和URI等Web架构标准的主要设计者...
B/S架构的优势在于其分布式特性,用户只需通过浏览器即可访问系统,无需安装额外软件,降低了维护成本。服务器端则负责处理数据和业务逻辑,确保系统的稳定运行。对于网上在线考试系统来说,这种架构使得教师能够...
0_架构师与设计师.pdf 01_软件流程实施方案选择.pdf 02_软件架构文档设计.pdf 03_软件架构风险管理.pdf 04_如何描述和评估软件架构...因附件大于16M被分成了两个包上传,请下载软件架构师教程1.rar 软件架构师教程2.rar
### 图书系统软件架构设计知识点解析 #### 一、引言 本文档旨在全面系统地阐述图书杂志采购和借阅系统的软件架构设计方案。通过多种视图的构建,从不同角度全面展示系统的各个方面,以满足不同涉众(如客户、设计师...
《系统架构设计师教程》中的第五章,深入探讨了软件架构设计的核心概念、原则与实践,为读者提供了全面而深入的理解。 ### 一、软件架构设计的重要性 软件架构设计是软件开发过程中的关键环节,它决定了软件系统的...
《基于BS架构的在线作业管理系统详解》 在信息化教育的时代,基于BS(Browser-Server,浏览器-服务器)架构的在线作业管理系统已经成为了教学辅助的重要工具。这种系统通过互联网技术,实现了教师与学生间的作业...
软件架构设计是信息技术领域中的一个重要议题,它不仅影响软件系统的构建和维护,也影响整个系统的质量属性,如性能、可伸缩性和可靠性等。架构风格是指在软件架构设计中形成的一组共同的设计模式和解决方案,它们对...
通过对《架构风格与基于网络的软件架构设计》一书中前三章内容的总结,我们可以看出软件架构设计不仅需要关注系统的基本结构和组件,还需要深入理解各种架构风格的特点及其对系统属性的影响。此外,通过合理的设计...
【基于三层架构的教材管理系统设计之系统分析】 在信息技术飞速发展的今天,计算机网络已经渗透到各个领域,教育也不例外。为了提升学校教材管理的效率和水平,基于三层架构的教材管理系统成为一种有效的解决方案。...
4. 软件架构研究已经发展成软件工程的重要分支,涵盖了架构描述语言、分析与验证、基于架构的维护等多个方面。 **系统架构设计师的定义与职业素质** 1. 系统架构设计师是设计和管理软件架构的关键人物,负责非功能...