当前位置: 首页 > article >正文

【从零开始学习计算机科学】设计模式(五)MVC模式、业务代表模式、组合实体模式、数据访问对象模式、前端控制器模式、拦截过滤器模式、服务定位器模式、传输对象模式

【从零开始学习计算机科学】设计模式(五)MVC模式、业务代表模式、组合实体模式、数据访问对象模式、前端控制器模式、拦截过滤器模式、服务定位器模式、传输对象模式

    • MVC模式
      • 主要组件
      • 工作原理
      • 优点
      • 缺点
      • 适用场景
      • 总结
    • 业务代表模式
      • 主要特点
      • 组成部分
      • 工作原理
      • 优点
      • 缺点
      • 适用场景
      • 总结
    • 组合实体模式
      • 主要特点
      • 组成部分
      • 工作原理
      • 适用场景
      • 优点
      • 缺点
      • 总结
    • 数据访问对象模式
      • 主要特点
      • 组成部分
      • 工作原理
      • 适用场景
      • 优点
      • 缺点
      • 总结
    • 前端控制器模式
      • 主要特点
      • 组成部分
      • 工作原理
      • 优点
      • 缺点
      • 适用场景
      • 总结
    • 拦截过滤器模式
      • 主要特点
      • 组成部分
      • 工作原理
      • 优点
      • 缺点
      • 适用场景
      • 总结
    • 服务定位器模式
      • 主要特点
      • 组成部分
      • 工作原理
      • 优点
      • 缺点
      • 适用场景
      • 总结
    • 传输对象模式
      • 主要特点
      • 组成部分
      • 工作原理
      • 优点
      • 缺点
      • 适用场景
      • 总结

MVC模式

MVC模式(Model-View-Controller)是一种广泛应用于软件工程中的架构设计模式,旨在将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。这种模式帮助实现应用程序的分层架构,增强了代码的可维护性和可扩展性。

主要组件

  • 模型(Model)
    • 负责管理应用程序的核心数据和逻辑。
    • 它不依赖于用户界面,包含了应用程序的业务逻辑、数据结构、数据库交互等。
    • 当数据发生变化时,模型会通知视图进行更新。
  • 视图(View)
    • 负责显示数据(模型的内容)并向用户展示界面。
    • 视图只关注数据的呈现,不涉及数据的处理逻辑。
    • 它会根据模型的状态变化来更新用户界面。
  • 控制器(Controller)
    • 负责处理用户输入的事件(如点击按钮、提交表单等),并根据需要更新模型和视图。
    • 控制器充当模型和视图之间的桥梁。它接收来自视图的输入,处理请求,并更新模型;同时,它还可能更新视图以反映模型的变化。

工作原理

  • 用户与视图交互:用户通过视图与系统进行交互,比如点击按钮、填写表单等。
  • 控制器处理输入:视图将用户的操作传递给控制器。控制器接收输入并决定如何处理。
  • 模型更新:控制器通常会更新模型的状态(例如,提交表单数据,执行数据库操作等)。
  • 视图更新:模型的状态更新后,控制器可能会通知视图进行更新,视图从模型获取数据并重新渲染用户界面。

优点

  • 分离关注点:将数据、视图和控制逻辑分离,使得每个部分可以独立开发和修改,易于维护和扩展。
  • 增强可维护性:业务逻辑和用户界面分离,当视图或控制器发生变化时,通常不会影响模型,反之亦然。
  • 提高灵活性:可以方便地更换视图(例如切换UI框架)而不改变控制器或模型。

缺点

  • 复杂性:对于较小的应用程序,MVC可能导致过多的层次和抽象,增加开发和理解的复杂性。
  • 学习曲线:开发者需要理解和适应MVC架构的工作原理,可能对初学者有一定的学习曲线。

适用场景

  • 大型应用:适用于开发具有复杂用户界面和业务逻辑的应用程序。
  • Web开发:MVC模式在Web开发中非常流行,许多Web框架(如Ruby on Rails、ASP.NET MVC、Spring MVC等)都采用了MVC模式。

总结

MVC模式通过分离数据、视图和控制逻辑,使得应用程序更易于扩展和维护。虽然它的架构较为复杂,但对于需要维护长期项目的团队开发,MVC是一个非常有效的架构设计模式。


业务代表模式

业务代表模式(Business Delegate Pattern)是一种结构型设计模式,它用于减少客户端与复杂业务逻辑层之间的直接交互。业务代表模式通过创建一个代理对象(即业务代表),作为客户端与业务层之间的中介,从而简化客户端与复杂系统的通信,降低客户端与业务层的耦合度。

主要特点

  • 简化客户端:客户端不直接与业务层交互,而是通过业务代表类与业务层进行交互,简化了客户端的代码。
  • 封装复杂性:业务代表类将复杂的业务逻辑和技术细节(如远程调用、事务管理等)封装起来,客户端只需要通过业务代表来获取服务。
  • 松耦合:客户端与业务层之间的耦合度降低,客户端不需要关心业务逻辑的实现或与业务层的具体通信方式。

组成部分

  • 业务代表类(Business Delegate):作为客户端与业务层之间的中介,负责客户端请求的转发,将请求传递给相应的业务服务类。
  • 客户端(Client):通过业务代表来访问业务层,客户端不需要了解复杂的业务服务实现细节。
  • 业务服务接口(Business Service Interface):定义业务层提供的接口,所有业务服务都遵循这个接口。
  • 具体业务服务类(Concrete Business Service):实现业务服务接口的具体业务逻辑层类,执行实际的业务操作。
  • 查找服务类(Service Locator):查找并提供服务实现的类。

工作原理

  • 客户端请求业务操作:客户端通过业务代表发起业务请求,而不直接与业务逻辑层交互。
  • 业务代表转发请求:业务代表接收客户端的请求,将其转发给实际的业务服务类。
  • 执行业务操作:业务服务类执行实际的业务操作,可能涉及复杂的业务逻辑或远程服务调用。
  • 返回结果给客户端:业务服务执行完毕后,结果被返回给业务代表,最终由业务代表传递给客户端。

优点

  • 减少客户端与业务层的耦合:客户端无需了解业务层的复杂实现,只需要与业务代表交互。
  • 简化客户端代码:客户端不需要直接管

http://www.kler.cn/a/589155.html

相关文章:

  • 多种注意力机制(文本->残差->视频)
  • 《灵珠觉醒:从零到算法金仙的C++修炼》卷三·天劫试炼(58)七宝妙树破数独 - 数独求解(回溯剪枝)
  • 量子计算与佛法智慧:一场关于二元对立的跨时空对话
  • 高亮动态物体——前景提取与动态物体检测器(opencv实现)
  • Elixir语言的容量规划
  • 【金融杂谈】价格内卷死局——谁造成了价格内卷?
  • 【Java--数据结构】优先级队列( PriorityQueue)
  • 【大语言模型】【个人知识库正式内容】提示工程:如何设计模型的提示语
  • 大模型最新面试题系列:微调篇之微调基础知识
  • 使用python去编写PDF转换成为EPUB以及MOBI工具
  • Linux如何在设备树中表示和引用设备信息
  • 基于Springboot+服务器磁盘的本地文件存储方案
  • 二分算法刷题
  • 【uni-app运行错误】SassError: expected selector @import “@/uni.scss“;
  • 11 Collection集合、Map集合:分类、功能、遍历、底层原理,Stream流:获取、中间方法、终结方法 (黑马Java视频笔记)
  • 探索 Rust 高效 Web 开发:Hyperlane 框架深度解析
  • Spring Boot 参数校验异常与错误编码映射方案
  • 线性回归中的最小二乘法:直接法与梯度下降的比较
  • Android 高版本兼容的原生定位工具类封装(支持 Android 5.0 到 Android 14)
  • kotlin中的模块化结构组件