三层架构的构建与理解

1.1 分层的作用

  • 观察下面代码有什么问题?

三层架构的构建与理解

1.2  什么是分层

  • 小公司:所有的办公区域在一起

三层架构的构建与理解

  •  大公司:分层明确
  1. 前台(表现层):直接面向客户
  2. 办公大厅(业务层):处理各种业务,如:登录、注册、转账
  3. 档案层(数据访问层):访问数据库

三层架构的构建与理解

 1.3 各层的作用

作用
表示层(view) 处理用户的输入与输出,直接面向客户
业务层(service) 用来处理表示层提交的数据,处理业务逻辑的代码,调用数据访问层来访问数据库
数据访问层(dao) Data Access Object 数据访问对象,进行数据的增删查改操作

三层架构的构建与理解

 1.4 分层的方式

通过包进行划分

包名 功能描述
com.sunny.view 表示层,专门与用户打交道
com.sunny.service 业务层,判断数据是否合法...(判断数据是否合法,处理事务)
com.sunny.dao 数据持久层,与数据库打交道
其它包:com.sunny.utils 工具类,entity实体类,test测试类

 1.5 分层开发的顺序

  • 表示层=>业务层=>(Dao层)数据持久层

1.6 分层的优缺点:(分包管理代码

  •  优点:
  1. 解耦:降低了代码之间的耦合度,分工更加明确。(Spring 类与类的接口,面向接口编程)
  2. 可维护性更强,如果有一层的代码需要修改,不会影响其它层。
  3. 可扩展性更强,如果有一层添加新的功能,不会影响其它层。
  4. 可重复性更强,不同层之间可以多次调用其它层的方法。
  • 缺点:
  1. 工作量增加了,因为需要分包,编写很多类。
  2. 代码复杂程度提升了。

 


2.1 使用三层架构实现用户注册与登录案例

  • 案例需求:

三层架构的构建与理解

  • 案例效果图:

三层架构的构建与理解

  •  三层架构原理图:

三层架构的构建与理解

  1.  使用数据库保存用户的信息
  2. 定义User类
  3. 编写DAO层,增加saveUser()和findUserByName()、findAllUsers()方法
  4. 编写业务层增加register()和isExist()和login()、showAllUsers()方法
  5. 编写View层增加register()方法和login()方法

3.1 代码实现

三层架构的构建与理解