- 三层架构简介
- 三层架构的必要性
- 经典两层架构
- 三层架构
- 三层架构逐层浅析
- 表示层
- 业务逻辑层
- 数据访问层
- 三层架构层间关系
- 层间依赖关系
- 层间数据流向
- 三层架构与实体类
- 需要实体类的理由
- 实体类的种类
更简单的两层架构是这样的:
- 数据访问和业务逻辑混在一起
- 用户界面直接调用数据访问
- 整个系统功能放在同一个项目中实现
这是很多不熟悉三层架构的初学者喜欢的模式,它的问题主要是:
- 难以适应需求的变化
- 不易维护
- 安全性差
当数据库或用户界面发生改变时,不需要完全重新开发,只需做简单调整即可。
三层架构逐层浅析 表示层表示层为用户提供了一种交互式操作界面。
业务逻辑层业务逻辑层是表示层与数据访问层的桥梁,负责数据的处理和传递,执行复杂业务逻辑。
数据访问层数据访问层实现了对数据的增删改查操作。
三层架构层间关系 层间依赖关系 层间数据流向 三层架构与实体类三层架构的层与层之间传递的是实体对象。
需要实体类的理由- 是完全受控制的对象
- 具有OOP的基本特征
- 可以自定义行为
- 消除了关系数据和对象之间的差异
实体类有很多种,BO、DAO、DO、DTO、PO、POJO、VO……
PO、VO、DAO等是比较需要区分的内容:
- DAO通常和PO结合使用,用于访问数据库,包含了各种数据库的操作方法,这些方法能实现功能;配合VO,提供数据库的CRUD操作。
- PO是在O/R映射的时候出现的概念,如果没有O/R映射,就没有这个概念存在了。PO通常对应数据模型(数据库表),本身还有部分业务逻辑的处理。可以看成是与数据库中的表相映射的Java对象。最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合。PO中应该不包含任何对数据库的操作。
- VO通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。VO抽象出的业务对象,可以和表对应,也可以不对应,可根据业务的需要自己选择。VO主要对应界面显示的数据对象。对于一个Web页面,或者Swing等的一个界面,用一个VO对象对应整个界面的值。



