Java三层架构

Java三层架构

1.什么是系统架构

​ 所谓系统架构是指,整合应用系统程序大的结构,经常提到的系统结构有两种 : 三层架构 与 MVC,这两种结构既有区别也有联系,但是这两种结构的使用,均是为了降低系统之间模块间的耦合度

2.什么是三层架构

三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为:界面层(User Interface layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data access layer)。区分层次的目的即为了“高内聚低耦合”的思想。在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。微软推荐的分层式结构一般分为三层,从下至上分别为:数据访问层(又称为持久层)、业务逻辑层(又或称为领域层)、表示层。

  • UI : (表现层)
    • 主要指与用户交互式操作的界面,用于接收用户输入的数据和显示处理后用户需要的数据
  • BLL : (业务逻辑层)
    • UI 层与 DAL 层之间的桥梁, 负责关键业务的处理和数据的传递
    • 实现业务逻辑 : 包括 数据验证, 逻辑判断, 计算, 业务规则等
  • DAL : (数据访问层)
    • 主要负责对数据库的直接访问
    • 为业务逻辑层提供数据,根据传入的值来操作数据库,增、删、改、查
    • 将存储在数据库中的数据提交给业务层,同时将业务层处理的数据保存到数据库
      Java三层架构

为了更好的降低各层间的耦合度,在三层框架程序设计中,采用面向抽象编程,即上层对下层的调用,是通过接口实现的,而下层对上层的真正服务服务提供者,是下层接口的实现类,服务标准(接口)是相同的,服务提供者(实现类)可以更换,这就实现了层间解耦合

Java三层架构

3.三层结构的优点

  1. 结构清晰、耦合度低
  2. 可维护性高,可扩展性高
  3. 利于开发任务同步进行, 容易适应需求变化

4.三层结构的缺点

  1. 、降低了系统的性能。这是不言而喻的。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。
  2. 有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码
  3. 增加了代码量,增加了工作量

5.与MVC的区别

MVC(模型Model-视图View-控制器Controller)是一种设计模式,我们可以用它来创建在域对象和UI表示层对象之间的区分。

同样是架构级别的,相同的地方在于他们都有一个表现层,但是他们不同的地方在于其他的两个层。

​ 广义上
MVC模式是跟三层框架没有联系的
实际上,它是表示三层框架的表示层。

在三层架构中没有定义Controller的概念。这是我认为最不同的地方。而MVC也没有把业务的逻辑访问看成是两个层,这是采用三层架构或MVC搭建程序最主要的区别。当然了。在三层中也提到了Model,但是三层架构中Model的概念与MVC中Model的概念是不一样的,“三层”中典型的Model层是以实体类构成的,而MVC里,则是由业务逻辑与访问数据组成的。