基于事件系统系统的软件架构
事件代表了某个事情的发生,例如某个用户点击了某个按钮,或者三国杀中某位玩家打出了一张杀牌或者策略牌。然后系统很多部件会对这个作出相应,这些相应应该是自洽的,言下之意这些相应可以自己处理自己,而不需要别人来维护。例如某人打出一个“万箭齐发”,其他人都应该相应这个牌。
应该有一个事件总线,他具有绑定事件函数和触发事件函数,可以使开发人员动态的维护事件响应,当事件发生的时候,根据事件id来找到绑定的事件处理器,然后这些处理器会处理事件相关业务。这些处理器处理业务所需要的数据,均在事件(通过事件的属性或者闭包)中带过去。
我们首先要有一个事件容器,他的bind(String eventId,EventProcesser)方法将事件处理器绑定到对应的事件中,在triggle(Event event)方法中触发event对应id的事件处理器。
事件应该有getSrc方法,返回事件源,事件处理器可以根据事件对象找到事件源对象,做相应的处理。
事件总线、处理器、事件关系如下图
业务类包含有事件总线对象,通过将bind和triggle方法委托给事件总线来完成对事件的操作。业务类可以是一个单例的服务类,也可以是基于orm的javabean,后者还要求将事件处理器和本身持久化保存到数据库中。
如果是javascript就不用这么麻烦,考虑持久化是一个比较麻烦的事情。
事件总线可以和有限状态机联合使用,有限状态机的事件和总线事件应该是同一个类,虽然我没有想好如何将两者联合使用,但是实际上这两者的使用,可以给系统带来很好的解耦性。
事件的处理可以是异步的,也可以是同步的,还可以跟例如activemq之类的消息总线联合,这些机制的整合是一个难题。
- 大小: 14.2 KB
分享到:
相关推荐
基于Android系统的车载娱乐系统软件架构.pdf
本文详细深入的描述了基于B/S架构智能家居系统的设计。通过对现有智能家居系 统开发模式以及功能需求的分析,提出了智能家居系统的总体架构,并且设计出了系统 的通信方案,同时给出了系统实现的各个功能模块。智能...
卡内基梅隆大学软件工程研究所本世纪初曾提出了基于架构的设计(Architecture Based Design)方法,本文着重从软件系统设计方面阐述基于架构的软件设计方法,用于产品线及长生命系统的高层软件架构设计,同时也为项目...
基于三层架构的教材管理系统设计之系统分析
java基于ssm垂直架构的考试系统源码 java基于ssm垂直架构的考试系统源码 java基于ssm垂直架构的考试系统源码 java基于ssm垂直架构的考试系统源码 java基于ssm垂直架构的考试系统源码 java基于ssm垂直架构的考试...
第七部分 软件架构设计 7.1 软件架构的概念 7.2 软件架构风格 7.3 面向服务的架构 7.4 特定领域软件架构 7.5 基于架构的软件开发方法 7.6 软件架构评估 7.7 软件产品线 第八部分 基于构件的开发 8.1 中间件技术 ...
基于DJango开发的仓库管理系统,软件架构:python 3.5、django 2.2、MySQL 基于DJango开发的仓库管理系统,软件架构:python 3.5、django 2.2、MySQL 基于DJango开发的仓库管理系统,软件架构:python 3.5、...
这是一份讲嵌入式程序的架构的好文档,大部分讲软件架构的书都是基于PC的软件开发的,很少有讲嵌入式软件的架构
基于LAMP架构软件下载网站的设计与实现毕业论文.docx
基于三层架构的新闻发布系统,界面灵活,美观大方。
系统基于B/S 多层Web 体系结构,在J2EE 平台上利用开源架构JSF、Spring、 Hibernate 等技术进行开发。按照软件工程方法,对造纸生产过程进行需求分析。使 用UML 建模工具,通过类图、用例图等对系统进行总体设计。...
基于《架构风格与基于网络的软件架构设计》前三章整理所得
充分运用了三层架构技术、数据库技术、计算机技术、网络技术、报表打印技术等知识来构成该系统,为用户提供了强大的数据操纵功能,并且本系统是基于B/S体系结构风格的,系统维护成本低。通过对所学的软件工程知识,...
0_架构师与设计师.pdf 01_软件流程实施方案选择.pdf 02_软件架构文档设计.pdf 03_软件架构风险管理.pdf 04_如何描述和评估软件架构...因附件大于16M被分成了两个包上传,请下载软件架构师教程1.rar 软件架构师教程2.rar
基于Java CS远程监控系统软件的设计与实现项目是一款基于Java语言开发的远程监控软件,主要应用Java Socket和Java AWT等技术,实现对远程设备的实时监控和控制。该系统可为企业、学校、政府等单位提供便捷和安全的...
Qt框架下实现了一个 C/S 架构的外卖平台软件,客户端使用到 Qt::Widgets 和 Qt::Network 模块,服务器使用到 Qt::Sql 和 Qt::Network 模块。系统的应用情景是:一个服务器实例服务多个客户端实例,客户端使用了GUI...
2、上行消息处理应用采用spring框架,采用基于事件驱动的设计模式处理上行消息,支持jdbc批量存储上行消息,应用支持横向扩展。 3、业务系统的各个子服务系统是采用最新spring-boot框架的微服务架构模式,数据交换...
摘要:本文主要阐述开发一种基于微服务架构的IT科技博客系统,为用户提供观看文章,发布文章以及互相评论交流的各种必要功能。同时为了保证平台资源的和谐健康,搭建了一套文章审核的后台管理系统用来审核用户发布的...
B/S架构的项目管理软件不需要暗转任何的软件,只要一台电脑,一条网线就可以实现。无论是内部或者外部的用户都可以随时访问系统,Web和Client/Server应用都可以进行同样的业务处理,不同的应用模块共享逻辑组件,...
系统架构设计师视频 第01章_考试简介.rar 第02章_信息系统基础.rar 第03章_系统开发基础.rar 第04章_操作系统.rar 第05章_数据库系统.rar 第06章_计算机网络.rar 第07章_软件架构设计.rar 第08章_基于构件的开发.rar...