三层架构
简介
三层架构是从整个业务应用角度对程序的划分,其分层逻辑来源于“高内聚低耦合”的思想。三层分别为:表现层,业务逻辑层,数据访问层(持久化层)。
- 内聚性:又称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。若一个模块内各元素(语名之间、程序段之间)联系的越紧密,则它的内聚性就越高。
- 耦合性:也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。
各层解析
- 表现层:用户看到的界面,作用就是接收用户提交的请求数据,反馈程序的响应数据给用户。目的提供可交互的操作界面。
- 业务逻辑层:“具体问题,具体分析”。不同请求做出不同响应。对数据层的一中整合方式。
- 数据访问层:提供对数据库操作的多种途径。
三层特点
- 优点:
- 解耦。上层只依赖下一层,便于发现和修改BUG。
- 简化复杂问题:各层分工明确,将复杂问题简化了。
- 逻辑复用:业务接口没变,业务层和数据层能直接用。
- 便于开发:各层接口在开发前规定好,可以独立开发。
- 方便部署:将各层开发成组件,则可以独立部署。
- 缺点
- 降低系统性能。不采用分层结构,可以直接造访数据库,获取数据。现在必须通过中间层来完成。
- 导致级联的修改。在表现层增加一个功能,需要在业务和数据层都增加相应的代码。
四层架构
四层架构有两种方式。
第一种形式:
该架构比三层多了一个系统服务层:提供公共的服务性代码,供各个操作层使用。
第二种方式:
五层架构
本质上五层架构并没有比上述架构有太大差别,只是进一步细化了。
- 用户界面层:即网页,用户能实实在在看得到的,能进行操作的界面;
- 控制层:控制用户界面层和业务逻辑层进行数据交互,
- 业务逻辑层:针对具体问题的操作,对业务逻辑的处理;
- 数据持久层:控制事务,直接操作数据库,对数据进行CRUD操作(即数据的增、删、改、查),即Hibernate或MyBatis负责与数据库的通信;
- 系统服务层:即提供公共的服务性功能,供各个操作层使用。