三层架构
三层架构是一种设计软件的体系结构。
三层架构就是为了符合“高内聚,低耦合”思想,把各个功能模块划分为表示层(UI)
、业务逻辑层(BLL)
和数据访问层(DAL)
三层架构,各层之间采用接口
相互访问,并通过对象模型的实体类
(Model)作为数据传递的载体,不同的对象模型的实体类一般对应于数据库的不同表,实体类的属性与数据库表的字段名一致。
表示层(UI)
表示层又称表现层或视图层或用户界面层 UI(User Interface layer):就是实现与用户交互
的功能,将用户的需求传达和反馈,即用于接受用户输入的数据,同时反馈相关的输出数据展示给用户。
业务逻辑层(BLL)
业务逻辑层 BLL(Business Logic Layer):是连接表示层和数据访问层的桥梁,实现业务逻辑的功能
。可以对接受到的数据进行处理、执行相关的计算等一些逻辑操作。
业务逻辑层通过调用数据访问层的各种操作方法,将这些方法按一定的逻辑组合起来实现具体需求,将这个过程比作搭积木的过程。
数据访问层(DAL )
数据访问层又称持久层 DAL (Data access layer):主要用来操作数据库中的数据
,实现数据的增加、删除、修改、查询等操作,并将操作结果反馈到业务逻辑层 BBL。
比如在数据访问层定义了一些操作数据的方法,即增、删、改、查的方法,将这些方法比作一块块的积木。
比如:
1、用户需要计算功能
用户在 UI 层输入用于计算的数据,然后传递给 BLL,在 BLL 进行计算操作,最后再将结果返回给 UI 层,通过UI 层展示给用户。
即:UI —> BLL —> UI
2、用户登录功能
用户在 UI 层输入相关的登录信息,然后传递给 BLL,在 BLL 进行相关的逻辑验证后将需要操作的指令传递给DAL,DAL根据接收到的指令对数据库中的数据进行相关的操作,然后将操作结果反馈给 BLL,BLL进一步反馈给 UI层,在 UI层展示用户需要的信息。
即:UI —> BLL —> DAL —> BLL —>UI
实体类库(Entity)
实体类库是数据库表的映射对象,即将一个数据表映射成一个实体类,表中的每一个记录封装为该实体类的对象,表中的每个字段对应实体对象中的一个属性。实体类库主要用于封装表中数据方便在表示层、业务逻辑层以及数据访问层之间进行传输,实现各个结构层的参数传输
。
相关层的Java包命名规则 | 对应的层 |
---|---|
com.xxx.项目名.dao | 保存dao层接口 (数据访问层) |
com.xxx.项目名.dao.impl | 保存dao层接口的实现类 |
com.xxx.项目名.service | 保存service层接口 (业务逻辑层) |
com.xxx.项目名.service.impl | 保存service层接口的实现类 |
com.xxx.项目名.web | 保存web层接口类 (表示层) |
com.xxx.项目名.util | 保存相关工具类 |
com.xxx.项目名.domain | 保存 javabean 标准类(实体类) |
参考:
https://baike.baidu.com/item/三层架构