最近评论
正在载入评论列表...
![]() |
![]() |
1.3 软件架构关注分割与交互
本节结合流行的MVC架构,说明软件架构是如何将系统分为不同部分,以及各部分之间如何交互的。
“软件系统的架构将系统描述为计算组件及组件之间的交互”,Shaw的这个定义从“软件组成”角度解析了软件架构的要素:组件及组件之间的交互。通过UML类图,我们可以将这个关系表达得更加清晰,参见图1-1。如图所示,组件和组件之间有交互关系,图中的“交互”采用了关联类的语法。

图1-1 软件架构的要素:组件及组件之间的交互
Shaw的架构定义高度抽象地将软件架构概括为“组件+交互”,下面以大家熟悉的MVC架构为例进行说明(如图1-2所示)。

图1-2 MVC架构作为“组件+交互”的例子
采用MVC架构的软件包含了这样3种组件:Model、View、Controller。
同时,为了达到一定的目的,这3种组件必须通过交互来协作,比如:View创建Controller后,Controller根据用户交互调用Model的相应服务,而Model会将自身的改变通知View,View则会读取Model的信息以更新自身。
通过此例可以看出,“组件+交互”可以将MVC等“具体架构设计决策”高屋建瓴地抽象地表达出来。