文章目录
一、什么是三层架构
1.概念
三层架构(Three-tier architecture)与MVC类似(Model-View-Controller)同样是一种软件架构模式,将应用程序分为三个主要层次:表示层(User Interface layer),业务逻辑层(Business Logic Layer),和数据访问层(Data Access layer)。这种分层架构的设计目的是提高应用程序的可维护性、可扩展性和可管理性。
2.具体描述
表示层(User Interface layer):
- 负责处理用户界面和用户交互。
- 通常包括网页、移动应用界面或桌面应用界面。
- 将用户的输入传递给业务逻辑层,并将业务逻辑层的输出呈现给用户。
业务逻辑层(Business Logic Layer):
- 处理应用程序的业务逻辑和规则。
- 接收表示层的请求,进行处理后调用数据访问层来获取或存储数据。
- 将处理结果返回给表示层。
数据层(Data Access layer):
- 负责与数据库或其他持久化存储交互。
- 执行CRUD操作(创建、读取、更新、删除)。
- 将数据返回给业务逻辑层。
二.三层架构的优缺点
1.优点
1.分离关注点:
- 表示层负责用户界面和用户交互。
- 业务逻辑层处理应用程序的核心功能和业务规则。
- 数据访问层管理数据存储和检索。
这种分离使得每一层可以独立开发、测试和维护,减少了模块间的耦合性。
2.提高可维护性。
由于各层的职责明确,修改某一层的代码通常不会影响其他层,从而简化了代码的维护和升级。
3.提高可重用性:
各层独立工作,可以在不同的项目中重用。例如,业务逻辑层可以在多个表示层(如Web、移动端)中使用。
4.增强可扩展性:
各层可以独立扩展。例如,可以通过增加服务器来扩展数据访问层或业务逻辑层,以应对更高的负载。
5.便于测试:
各层可以单独进行测试。单元测试可以集中在业务逻辑层,而表示层和数据访问层可以进行集成测试。
6.安全性:
通过限制各层的访问权限,可以提高系统的安全性。例如,业务逻辑层和数据访问层可以隐藏在防火墙后面,只有表示层与用户直接交互。
2.缺点
1.复杂性增加:
引入三层架构会增加系统的复杂性,尤其是在小型项目中,可能显得过于繁琐。
2.性能开销:
层与层之间的通信会增加系统的开销,例如网络延迟和数据传输时间,可能导致性能下降。
3.开发成本增加:
由于需要开发和维护多个层次的代码,开发周期和成本会增加。
4.调试困难:
多层次架构可能导致调试过程变得更加复杂。问题可能出现在任何一层,追踪和定位问题的来源需要更多的时间和精力。
三,三层架构部分代码演示
表示层(User Interface layer)
// 控制器类
public class UserController {
private UserService userService = new UserService();
public void displayUserDetails(int userId) {
User user = userService.getUserById(userId);
System.out.println("User Details: " + user);
}
}
Controller类负责处理用户界面和用户交互,并调用Service类将用户的输入传递给业务逻辑层
业务逻辑层(Business Logic Layer)
// 业务服务类
public class UserService {
private UserDao userDao = new UserDao();
public User getUserById(int userId) {
return userDao.getUserById(userId);
}
}
Service主要处理应用程序的业务逻辑和规则。接收表示层Controller的请求,进行处理后调用数据访问层来获取或存储数据。
数据访问层(Data access layer)
// 数据访问对象类
public class UserDao {
// 模拟数据库查询
public User getUserById(int userId) {
// 在实际应用中,这里会有数据库查询代码
return new User(userId, "小芳");
}
}
数据访问层主要负责数据库的增删改查等操作
pojo对象类
// 用户类
public class User {
private int id;
private String name;
public User(int id, String name) {
this.id = id;
this.name = name;
}
@Override
public String toString() {
return "User{id=" + id + ", name='" + name + "'}";
}
}
标签:逻辑,架构,表示层,业务,概念,User,三层,public
From: https://blog.csdn.net/weixin_61880433/article/details/140480446