梦想还是要有的,万一忘了咋办?

0%

架构风格-C2


C2架构风格是一种常见的层次体系架构风格。该架构风格概括而言,是由连接件绑定的按一定规则运行的并行构件网络,在该架构风格中,各构件之间不能直接连接,只能通过连接件的异步通信机制进行交互,使得构件的替换或更新不影响架构,这种方式体现了高内聚,松耦合的设计思想。

特点

在C2架构风格中,构件与连接件有以下几点:

  • 构件之间不能直接连接
  • 构件,连接件都有顶部与底部
  • 构件顶部或底部只能与连接件底部或顶部相连,
  • 连接件相互之间可通过顶部及底部连接
  • 构件不感知下一层构件
  • 构件可以感知上一层构件
  • 构件之间通过连接件的异步消息机制交互

消息机制

在C2风格中,构件与构件之间只能通过消息进行交互中,因此将消息分为了两类:

  • 请求:下一层构件通过顶层向上一层构件底层发送的消息
  • 通知:上一层构件通过底层向下一层构件发送的消息

从上可知,C2中的构件存在两个部件,即

  • 顶层域:能对哪些通知做出响应及会发出哪些请求
  • 底层域:能请收哪些请求及会发出哪些通知

同时若构件之间的消息如果不能直接解析,还需要一个域转换器进行消息及请求的转换。

点评

优点

  • 松耦合
    上层构件对下层构件不感知,方便更新或替换下层构件。
  • 高内聚
    构件之间通过消息交互,相对独立,可以封装任意复杂度的构件至系统中
  • 易扩展修改
    构件只与上下层构件交互,功能的修改最多只影响上下层,不扩散影响。
  • 可重用
    只要符合请求及响应标准,就可重用构件。

缺点

  • 效率低:
    若业务处理涉及多个构件层次,在系统执行过程中将存在性能损耗
  • 层次不清:
    难以划分出合适的,正确的层次结构,有时由于需求,需要跨层交互,增加复杂性