9.2.3 分层风格
分层和独立是软件体系结构设计的一个基础,分层的软件体系结构风格可以很好地实现系统的分层性和独立性。分层风格的体系结构是将系统组织成一个层次结构,每一层既为上层服务,同时也拥有下层客户。在一些层次系统中,除了精心挑选的输出函数外,内部的层只对相邻的层可见,即第j层的服务仅被第j+1层使用,与不相邻的层之间没有进一步的依赖关系。这样的系统中,构件在一些层实现了虚拟机。连接件通过决定层间如何交互的协议来定义,拓扑约束包括对相邻层间交互的约束。分层风格的软件体系结构如图9-2所示。

图9-2 分层风格的软件体系结构(https://www.daowen.com)
这种风格支持基于可增加抽象层的设计,从而允许将一个复杂问题分解成一个增量步骤序列的实现。由于每一层最多只影响两层,同时只要给相邻层提供相同的接口,允许每层用不同的方法实现,为软件重用提供了支持。
分层风格的优点在于支持重用、易于标准化、局部依赖性(可测试性)强、可替换性/移植性好、分工/变更效率高,而其面临的一个重要问题是如何控制分层的粒度。