分层(Layer)模式是最常见的一种架构模式。
分层描述的是这样一种架构设计过程:从最低级别的抽象开始,称为第1层。这是系统的基础。通过将第J层放置在第J-1层的上面逐步向上完成抽象阶梯,直到到达功能的最高级别,称为第N层。
因而分层模式就可以定义为:将解决方案的组件分隔到不同的层中。每一层中的组件应保持内聚性,并且应大致在同一抽象级别。每一层都应与它下面的各层保持松散耦合。
分层模式的关键点在于确定依赖:即通过分层,可以限制子系统间的依赖关系,使系统以更松散的方式耦合,从而更易于维护。
对系统进行分层有如下基本原则:
— 可见度。各子系统只能与同一层及其下一层的子系统存在依赖关系。
— 易变性。最上层放置随用户需求的改变而改变的元素。最底层放置随实施平台(硬件、语言、操作系统、数据库等)的改变而改变的元素。中间的夹层放置广泛适用于各种系统和实施环境的元素。如果在这些大类中进一步划分有助于对模型进行组织,则添加更多的层。
— 通用性。一般将抽象的模型元素放置在模型的低层。如果它们不针对于具体的实施,则倾向于将其放置在中间层。
— 层数。对于小型系统,三层就足够了。对于复杂系统,通常需要5-7层。无论复杂程度如何,如果超过10层,就需要慎重考虑了。层数越多,越需慎重。
常见的分层架构模式:
1.客户端-服务器模型(Client-Server,C/S)。
2.三层模型:用户表示层、业务逻辑层、数据层。
3.多层结构的技术组成模型:表现层、中间层、数据层。
4.网络系统常用三层结构:核心层、汇聚层和接入层。
5.RUP典型分层方法:应用层、专业业务层、中间件层、系统软件层。
6.基于Java的B/S模式系统结构:浏览器端、服务器端、请求接收层、请求处理层。
7.某六层结构:功能层(用户界面)、模块层、组装层(软件总线)、服务层(数据处理)、数据层、核心层。