一、哪三层
1.1、表现层
缩写 UI ,表现层主要是指 与用户交互的界面 。用来接收用户输入的数据和显示操作后的处理。像语句 System.out.println(“欢迎来到图书管理系统”)
就是放在表现层的。
1.2、业务逻辑层
缩写 BLL ,这一层是 实现业务逻辑 的,包括验证、业务规则、计算等等。像图书的查或删可以放在业务逻辑层。
1.3、数据访问层
缩写 DAL ,顾名思义,这一层是用来 与数据库打交道 的,主要实现对数据的增删查改操作。
三层架构的运行:通过表现层(UI)决定对数据的各种操作,将操作提交给业务逻辑层(BLL)处理,处理结果保存到数据库(DAL),并将数据库中的数据通过业务逻辑层反馈给表现层,一如下图:
二、实体层
在更多的开发中,我们常用到其他层代码辅助,比如说实体层。
实体层不属于三层架构中的任意一层,但它确是必不可少的一层。
实体层贯穿于三层,连接三层架构,在三层之间传递数据。
简单来讲,实体层中是由每张表来对应的一个实体类,即每个数据表中的字段对应实体中的属性。(不过这并不是固定的,因为有可能需要的实体在数据表中并不存在,或者我们也可以将所有数据表中的所有字段放在一个实体里)
实体层实现了面向对象思想中的“封装”。
三层(表现层—>业务逻辑层—>数据访问层)之间的数据传递是靠变量或者实体作为参数来传递的,这样就构造了三层之间的联系,完成了功能的实现。
三层及实体层之间的依赖关系:
三、三层架构的实用性(好处)
为什么是三层?不能是两层吗?
答案就是 解耦。 三层可以使在任何一层发生的变化都不影响到其他层。
如果是两层:
当任意一个地方发生变化时,系统都需要重新开发,难以适应需求变化,可维护性低、可扩展性低。
使用三层:
哪一层变化,就更改哪一层,而不是更改整个系统。三层的结构使得代码间层次分明,分工明确,降低了每一层之间的耦合度,提高了效率,更适应需求变化,可维护性高,可扩展性高。
总结:
-
结构清晰、耦合度低
-
可维护性高、可扩展性高
-
利于开发任务同步进行,容易适应需求变化
-
结构清晰、耦合度低
-
可维护性高、可扩展性高
-
利于开发任务同步进行,容易适应需求变化