IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> MVC开发模式&三层架构简记 -> 正文阅读

[开发测试]MVC开发模式&三层架构简记

1. MVC与三层架构的关系

1.1 区别

  • 从功能上看
    • 三层架构是一个分层式的软件体系架构设计,适用于所有的项目
    • MVC开发模式是为了让前端和业务逻辑代码和数据分开,只使用在web项目中
  • 从目的上看
    • 三层架构侧重的目的是项目整体的解耦
    • MVC开发模式目的是为了web项目中各类职责的统一规范化,侧重的是前端页面和业务逻辑处理的一个解耦
  • 从层次上看
    • 三层架构是框架层面上的
    • MVC开发模式是设计模式层面上的。一个软件肯定要先确定好框架,之后才有下一步的设计模式

1.2 联系

  • 两者都用到了分层和解耦的思想
  • 通常的MVC都是在应用三层架构的基础上的,是基于三层架构设计的
  • MVC&三层架构&实现

2. MVC开发模式

  • MVC开发模式的三个层次

    1. M --> Model 模型负责数据库操作和业务逻辑操作,是MVC的主体(类似于三层架构的DAL和BLL的结合,但不同于entity层)
    2. V --> View 视图:用户与系统之间的交互界面(类似于三层架构的UI层)
    3. C --> Controller 控制器:根据用户输入控制界面数据显示和更新model对象的状态,控制整个业务流程。是M和V之间的胶水,实现model层和view层的协同工作
  • web项目中的MVC

  • MVC开发模式与23种设计模式的关系

    • MVC不是一种设计模式,只能算是一种开发模式或架构模式
    • MVC和23种设计模式是同一个层面上的,都是为了规范化代码
    • MVC是23种设计模式中几种模式的变形和整合

3. 三层架构

  • 三层架构中的三层

    1. 表现层/界面层/web层(UI):User Interface。与用户交互的界面,用于接受用户输入的数据和显示处理后的信息。对应SSM框架中的SpringMVC
    2. 业务逻辑层(BLL):Business Logic Layer。UI层与DAL层的桥梁,实现具体的业务逻辑操作。对应SSM框架中的Spring
    3. 数据访问层(DAL):Data Access Layer。操作数据库,实现对数据库最基本的增删改查(CRUD)。对应SSM框架中的Mybatis
  • 用户&三层架构&数据库

  • web项目中的三层架构

  • 三层架构的作用、目的:主要作用和目的就是解耦,任何一层的修改都不会影响其他层

  • 三层架构的优势

    1. 结构清晰,耦合度低
    2. 可维护性、可扩展性高
    3. 利于开发任务同步进行,容易适应需求变化
  • 实体层(entity):它不属于三层中的任何一层,但是它是必不可少的一层

    • entity层有以下几个作用
      1. 实现面向对象思想中的“封装”
      2. 贯穿于三层之间,在三层之间传递数据,实现三层的紧密联系
      3. 可以简单理解为一张数据库表对应一个实体类,数据库表中每一个字段对应实体中每一个属性
      4. 三层之间的单向数据传递(UI–>BLL–>DAL)是靠变量或实体作为参数来传递的,从而实现三层之间的联系以及功能的实现
    • 三层与entity层的依赖关系

4. 参考博文

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-08-12 16:58:56  更:2021-08-12 16:59:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/25 15:45:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计