`
ytrgmj
  • 浏览: 21550 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

基于事件系统系统的软件架构

 
阅读更多
基于事件系统系统的软件架构


事件代表了某个事情的发生,例如某个用户点击了某个按钮,或者三国杀中某位玩家打出了一张杀牌或者策略牌。然后系统很多部件会对这个作出相应,这些相应应该是自洽的,言下之意这些相应可以自己处理自己,而不需要别人来维护。例如某人打出一个“万箭齐发”,其他人都应该相应这个牌。
应该有一个事件总线,他具有绑定事件函数和触发事件函数,可以使开发人员动态的维护事件响应,当事件发生的时候,根据事件id来找到绑定的事件处理器,然后这些处理器会处理事件相关业务。这些处理器处理业务所需要的数据,均在事件(通过事件的属性或者闭包)中带过去。
我们首先要有一个事件容器,他的bind(String eventId,EventProcesser)方法将事件处理器绑定到对应的事件中,在triggle(Event event)方法中触发event对应id的事件处理器。
事件应该有getSrc方法,返回事件源,事件处理器可以根据事件对象找到事件源对象,做相应的处理。
事件总线、处理器、事件关系如下图

业务类包含有事件总线对象,通过将bind和triggle方法委托给事件总线来完成对事件的操作。业务类可以是一个单例的服务类,也可以是基于orm的javabean,后者还要求将事件处理器和本身持久化保存到数据库中。
如果是javascript就不用这么麻烦,考虑持久化是一个比较麻烦的事情。
事件总线可以和有限状态机联合使用,有限状态机的事件和总线事件应该是同一个类,虽然我没有想好如何将两者联合使用,但是实际上这两者的使用,可以给系统带来很好的解耦性。
事件的处理可以是异步的,也可以是同步的,还可以跟例如activemq之类的消息总线联合,这些机制的整合是一个难题。
  • 大小: 14.2 KB
分享到:
评论

相关推荐

    基于Android系统的车载娱乐系统软件架构.pdf

    基于Android系统的车载娱乐系统软件架构.pdf

    基于嵌入式B/S架构的智能家居远程监控系统开发

    本文详细深入的描述了基于B/S架构智能家居系统的设计。通过对现有智能家居系 统开发模式以及功能需求的分析,提出了智能家居系统的总体架构,并且设计出了系统 的通信方案,同时给出了系统实现的各个功能模块。智能...

    基于架构的软件设计方法

    卡内基梅隆大学软件工程研究所本世纪初曾提出了基于架构的设计(Architecture Based Design)方法,本文着重从软件系统设计方面阐述基于架构的软件设计方法,用于产品线及长生命系统的高层软件架构设计,同时也为项目...

    基于三层架构的教材管理系统设计之系统分析

    基于三层架构的教材管理系统设计之系统分析

    java基于ssm垂直架构的考试系统源码.zip

    java基于ssm垂直架构的考试系统源码 java基于ssm垂直架构的考试系统源码 java基于ssm垂直架构的考试系统源码 java基于ssm垂直架构的考试系统源码 java基于ssm垂直架构的考试系统源码 java基于ssm垂直架构的考试...

    推荐系统架构师考试全套视频教程合集.zip

    第七部分 软件架构设计 7.1 软件架构的概念 7.2 软件架构风格 7.3 面向服务的架构 7.4 特定领域软件架构 7.5 基于架构的软件开发方法 7.6 软件架构评估 7.7 软件产品线 第八部分 基于构件的开发 8.1 中间件技术 ...

    基于DJango开发的仓库管理系统源码.zip

    基于DJango开发的仓库管理系统,软件架构:python 3.5、django 2.2、MySQL 基于DJango开发的仓库管理系统,软件架构:python 3.5、django 2.2、MySQL 基于DJango开发的仓库管理系统,软件架构:python 3.5、...

    嵌入式系统软件架构设计.doc

    这是一份讲嵌入式程序的架构的好文档,大部分讲软件架构的书都是基于PC的软件开发的,很少有讲嵌入式软件的架构

    基于LAMP架构软件下载网站的设计与实现毕业论文.docx

    基于LAMP架构软件下载网站的设计与实现毕业论文.docx

    基于三层架构的新闻发布系统

    基于三层架构的新闻发布系统,界面灵活,美观大方。

    基于J2EE架构的生产管理系统设计

    系统基于B/S 多层Web 体系结构,在J2EE 平台上利用开源架构JSF、Spring、 Hibernate 等技术进行开发。按照软件工程方法,对造纸生产过程进行需求分析。使 用UML 建模工具,通过类图、用例图等对系统进行总体设计。...

    基于网络的软件架构风格

    基于《架构风格与基于网络的软件架构设计》前三章整理所得

    基于三层架构的医院管理系统李冬梅.pdf

    充分运用了三层架构技术、数据库技术、计算机技术、网络技术、报表打印技术等知识来构成该系统,为用户提供了强大的数据操纵功能,并且本系统是基于B/S体系结构风格的,系统维护成本低。通过对所学的软件工程知识,...

    软件架构师教程 软件架构

    0_架构师与设计师.pdf 01_软件流程实施方案选择.pdf 02_软件架构文档设计.pdf 03_软件架构风险管理.pdf 04_如何描述和评估软件架构...因附件大于16M被分成了两个包上传,请下载软件架构师教程1.rar 软件架构师教程2.rar

    基于JAVA CS远程监控系统软件的实现源代码

    基于Java CS远程监控系统软件的设计与实现项目是一款基于Java语言开发的远程监控软件,主要应用Java Socket和Java AWT等技术,实现对远程设备的实时监控和控制。该系统可为企业、学校、政府等单位提供便捷和安全的...

    基于Qt框架实现的CS架构的外卖平台软件系统.zip

    Qt框架下实现了一个 C/S 架构的外卖平台软件,客户端使用到 Qt::Widgets 和 Qt::Network 模块,服务器使用到 Qt::Sql 和 Qt::Network 模块。系统的应用情景是:一个服务器实例服务多个客户端实例,客户端使用了GUI...

    基于JTT808协议的车辆监控系统架构方案

    2、上行消息处理应用采用spring框架,采用基于事件驱动的设计模式处理上行消息,支持jdbc批量存储上行消息,应用支持横向扩展。 3、业务系统的各个子服务系统是采用最新spring-boot框架的微服务架构模式,数据交换...

    基于微服务架构的IT科技博客系统设计与开发.rar

    摘要:本文主要阐述开发一种基于微服务架构的IT科技博客系统,为用户提供观看文章,发布文章以及互相评论交流的各种必要功能。同时为了保证平台资源的和谐健康,搭建了一套文章审核的后台管理系统用来审核用户发布的...

    浅析基于B/S架构项目管理系统的优势

    B/S架构的项目管理软件不需要暗转任何的软件,只要一台电脑,一条网线就可以实现。无论是内部或者外部的用户都可以随时访问系统,Web和Client/Server应用都可以进行同样的业务处理,不同的应用模块共享逻辑组件,...

    软件架构师视频2018年(百度网盘)

    系统架构设计师视频 第01章_考试简介.rar 第02章_信息系统基础.rar 第03章_系统开发基础.rar 第04章_操作系统.rar 第05章_数据库系统.rar 第06章_计算机网络.rar 第07章_软件架构设计.rar 第08章_基于构件的开发.rar...

Global site tag (gtag.js) - Google Analytics