为软件重用提供了强大的支持。当需要将一个构建加入现存系统中时,只需将它注册到系统的事件中。新的关注者不对现有的关注者构成任何影响
系统维护和重用
为改进系统带来了方便。当用一个构件代替另一个构件时,不会影响到其他构件的接口。
性能
调用可以是并行的
鲁棒性
一个构件的故障不会影响其它构件
核心思想:系统分解为多个低耦合的模块
缺点:
构件放弃了对系统计算的控制。一个构件触发一个事件时,不能确定其它构件是否会响应它。而且即使它知道事件注册了哪些构件的构成,它也不能保证这些过程被调用的顺序。
数据交换的问题。有时数据可被一个事件传递,但另一些情况下,基于事件的系统必须依靠一个共享的仓库进行交互。在这些情况下,全局性能和资源管理便成了问题。
既然过程的语义必须依赖于被触发事件的上下文约束,关于正确性的推理存在问题。
Other Familiar Styles C2 Architecture Style通过连接件绑定在一起的按照一组规则运行的并行构件网络。
系统组织规则:系统中的构件和连接件都有一个顶部和一个底部
构件的顶部应连接到某连接件的底部,构件的底部则应连接到某连接件的顶部,而构件与构件之间的直接连接是不允许的
一个连接件可以和任意数目的其他构件和连接件连接
当两个连接件进行直接连接时,必须由其中一个的底部到另一个的顶部。
特点:系统中的构件可实现应用需求,并能将任意复杂度的功能封装在一起
所有构件之间的通讯是通过以连接件为中介的异步消息交换机制来实现的