三层架构和MVC架构
共同点:
都是基于“高内聚,低耦合”原则进行创建的规范结构。
1、高内聚:
一个模块 “专注做一件事”
定义:一个 “模块”(可以是一个类、一个函数、一个包)内部的功能高度相关,只负责一个核心职责,不掺杂无关逻辑。
2、 低耦合:
模块之间 “少依赖、弱关联”
定义:不同模块之间的依赖关系尽可能少,一个模块的修改不会(或很少)影响其他模块。模块之间通过 “简单接口” 通信,而不是直接操作对方的内部数据。
三层架构的思想:
1、三层概括:
分别为表示层(UI)、业务逻辑层(BLL)、数据访问层(DAL);

- 表示层(UI):用户交互层,三层架构的最上层,直接面向终端用户。
- 实现用户界面的展示(如Web 页面、APP 界面等)。
- 接收用户的输入数据(如按钮点击、文本输入、文件上传)。
- 将业务逻辑层返回的处理结果反馈给用户。
- 业务逻辑层(BLL):系统的核心层,表示层与数据访问层的桥梁,承上启下。
- 封装具体的业务规则和逻辑(如 “用户登录验证”等)。
- 接收表示层传递的用户请求,调用数据访问层获取原始数据。
- 对原始数据进行业务处理(如数据清洗、模型推理、规则判断等),将处理后的结果返回给表示层。
- 负责层级间的数据格式转换,确保表示层和数据访问层的数据兼容。
- 数据访问层(DAL):数据持久化层,三层架构的最下层,直接对接数据存储介质。
- 实现对数据的 CRUD 操作。
- 封装数据存储的细节(如数据库连接、SQL 语句)。
- 为业务逻辑层提供统一的数据访问接口,屏蔽底层数据存储的差异(如切换 MySQL 时,仅需修改 DAL 层)。
2、过程结构:
在三层架构程序设计中,采用面向接口编程。各层之间采用接口相互访问,并通过对象模型的实体类(Model)作为数据传递的载体。例如:pojo、bean、DTO、VO等纯数据封装的普通类.。

层与层之间的解耦:
层与层之间的依赖是向下的,上层对下层的调用,是通过接口实现的,而真正提供服务的是下层的接口实现类。当实现类发生改变时,其接口不会发生变化,即每层之间实现解耦。
MVC架构的思想:
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写。

组件类概括:
前端控制器(DispatcherServlet):相当于一个调度中心,接受所有的请求;被tomcat容器初始化的类,当这个类被加载时会调用其他的组件类,处理器映射器、处理器适配器、视图解析器等。
处理器映射器(HandlerMapping):通过请求路径与控制器中的对应的方法进行绑定。返回处理器执行链HandlerExecutionChain,里面包含了拦截器和控制器中方法(Handle)。
处理器适配器(HandleAdaptor):里面包含了执行控制器中的方法(Handle)、通过参数的类型转换器处理请求参数、处理返回值。注意:前后端分离:是在Handle上添加注解@RequestBoby,通过HttpMessageConverter转换器返回数据并转换为Json类型。
视图解析器(ViewResolver):将逻辑视图转换为真正的视图。
视图阶段(老旧的JSP等)
步骤:
前端用户发送请求到前端控制器。
前端控制器去调用处理器映射器handleMapping返回处理执行链(拦截器+Handle方法)给前端控制器。
若无拦截器,则前端控制器去调用处理器适配器,处理器适配器执行Handle方法和解析处理请求参数,以及处理返回值后返回给前端控制器。
前端控制器去调用视图解析器,将逻辑视图转换为真正的视图。
最后渲染视图。
前后端分离阶段(接口开发、异步请求响应)

步骤:
前端用户发送请求到前端控制器。
前端控制器去调用处理器映射器handleMapping返回处理执行链(拦截器+Handle方法)给前端控制器。
若无拦截器,则前端控制器去调用处理器适配器,处理器适配器执行Handle方法和解析处理请求参数。
是在Handle上添加注解@RequestBoby,通过HttpMessageConverter转换器返回数据并转换为Json类型。
前端接受参数并处理。
前端渲染视图。
都看到这了,给杰克李点个赞支持一下呗
你的‘赞’,是给与杰克李最大的动力鸭
有问题,可以评论区大家一起讨论
后续会在此更新,相关问题及解决方案
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)