关注点分离的架构方法

举报
码乐 发表于 2025/04/10 09:43:48 2025/04/10
97 0 0
【摘要】 1 简介MVC 是一种目前广泛流行的软件体系结构,该架构模式的三个基本组件包括模型(Model)、视图(View)和控制器(Controller)。模型(Model)用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。Model 有对数据直接访问的权利,例如对数据库的访问。Model不依赖 View 和 Controller,也就是说, Model 不关心它会被如何显示或是如何被操...

1 简介

MVC 是一种目前广泛流行的软件体系结构,该架构模式的三个基本组件包括模型(Model)、视图(View)和控制器(Controller)。

模型(Model)用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。
Model 有对数据直接访问的权利,例如对数据库的访问。
Model不依赖 View 和 Controller,也就是说, Model 不关心它会被如何显示或是如何被操作。
但是 Model 中数据的变化一般会通过一种刷新机制被公布。
为了实现这种机制,那些用于监视此 Model 的 View必须事先在此 Model 上注册,从而,Vew 可以了解在数据 Model 上发生的改变。

视图(View)能够实现数据有目的的显示。
在View 中一般没有程序上的逻辑。为了实现View 上的刷新功能,Vew 需要访问它监视的数据模型(Model,因此应该事先在被它监视的数据那里注册。

控制器(Controller)起到不同层面间的组织作用,用于控制应用程序的流程。
它处理事件并作出响应。
“事件”包括用户的行为和数据 Model 上的改变。

基于 MVC 架构模式的思想,Scnm 敏捷开发管理系统中各元素分别对应于MVC中的 Model、View、Controller 如下表所示。

架 构 模 式			 包含内 容
模型(Model)			 Project、Product Backlog、用户故事、用户、Task、Sprint、产品负责人、SprintBacklog
视图(View)			 Sprint 燃尽图、Release 燃尽图
控制器(Controler)	 估算任务预计完成时间、新建项目

模型-视图-控制器 (MVC) 框架 是一种广泛使用的架构模式,它将 应用程序分为三个主要组件:模型、视图和 Controller 的 Controller。
这种分离通过划分职责和促进模块化来帮助 管理复杂的应用程序。

2 MVC 的组件

  • 模型
    Model 组件处理所有 与数据相关的逻辑。它管理 应用程序的数据、逻辑和规则。 该模型可以与数据库交互以执行 CRUD(创建、读取、更新、删除)作并执行业务规则。它会通知 View 和 Controller 任何 状态变化。模型是应用程序的数据层。它直接参与数据管理以及应用程序逻辑和规则的控制。

示例:在 书店应用程序中, 模型将管理与书籍相关的 数据, 例如书名、作者、价格和库存水平。

  • 视图

View 组件 负责 用户界面 (UI) 逻辑。它生成 用户界面 并向用户显示数据。
View 与 Controller 交互,从 Model 获取数据 并以特定格式呈现数据

视图:视图位于表示层中。它的作用是将 Model 提供的信息呈现给用户,并将用户命令传递给 Controller。View 用于使用 Controller 创建的界面以可读和可管理的方式向用户显示数据。

示例:在 书店应用程序中, View 将显示 书籍列表、书籍详细信息,并提供用于搜索或筛选书籍的输入字段

  • 控制器

Controller 充当 Model 和 View 之间的中介。它处理所有 业务逻辑和传入请求,使用 Model 作数据 ,并与 View 交互以呈现最终输出。 Controller 接收用户输入,更新 Model,并选择要 显示的适当 View

控制器:控制器 CE 工作在 Model 和 View 之间的中间。它从 View 获取输入,有时在 Model 的帮助下对其进行修改,然后将其发送回 View。结果返回到 View。

示例:在 书店应用程序中,Controller 将处理 诸如搜索 书籍、将 书籍添加到 购物车或结帐 等作

3 MVC 框架的工作原理

当用户发送 请求时,Controller 会处理该请求并与 Model 交互以检索或更新数据。 Model 处理数据并将结果返回给 Controller。然后,控制器选择 适当的视图以向用户 显示 数据

示例:如果用户 请求 学生列表,Controller 将要求 Model 从数据库中获取 数据。 Model 将数据 返回 给 Controller, 然后 Controller 将数据传递给 View 以呈现 学生列表

  • MVC 的优势

关注点分离:MVC 将应用程序分为三个组件,使其 更易于管理 和维护

可扩展性:MVC 的 模块化特性允许可扩展 和可扩展的应用程序

可测试性:每个组件都可以 独立测试,支持测试驱动开发 (TDD)

并行开发:多个开发人员可以 同时处理不同的组件

  • MVC 的缺点

复杂性:MVC 可能会带来复杂性,尤其是对于小型应用程序

学习曲线:理解和实现 MVC 需要 很好地掌握模式 及其组件

流行的 MVC 框架

一些流行的 MVC 框架包括 Ruby on Rails、Django、Spring MVC、Laravel 和 Symphony

4 小结

MVC 模式是一种 强大的架构设计,它通过分离关注点和促进 来帮助构建可扩展、可维护和可测试的应用程序模块性。

关注点分离:MVC 将应用程序构建为三个集成元素,这确实将关注点分开。由于每个组件之间的职责划分明确,应用程序的功能变得更加合乎逻辑和易于理解。
可重用性:由于 Model、View 和 Controller 都是不同的实体,因此组件可以在应用程序的各个部分或不同的项目中使用。例如,包含用户数据的 Model 类可以在视图和控制器中多次使用。
可扩展性:MVC 放大了可以进一步开发的应用程序的创建。当应用程序前进时,可以添加应用程序的新功能,而无需对应用程序的某些部分进行重大更改,因为它们难以捉摸。
可测试性:这种关注点的分离使得每个部分与其他部分的测试变得更加容易,就像我们与其他问题一样。测试策略之一是对 Model、View 和 Controller 部分进行单独的测试,这样,在组合它们之前可以确保每个部分都正常运行。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。