MVC框架介绍
在过去的几年里,网站已经从带有一点 CSS 的简单 HTML 页面转变为极其复杂的应用程序,成千上万的开发人员同时在这些应用程序上工作。为了使用这些复杂的 Web 应用程序,开发人员使用不同的设计模式来布置他们的项目,以使代码不那么复杂并且更容易使用。这些模式中最流行的是 MVC 也称为模型视图控制器。
Model-View-Controller (MVC)框架是一种架构/设计模式,它将应用程序分为三个主要的逻辑组件Model 、 View和Controller 。每个架构组件都是为处理应用程序的特定开发方面而构建的。它将业务逻辑和表示层相互隔离。它传统上用于桌面图形用户界面 (GUI) 。如今,MVC 是最常用的行业标准 Web 开发框架之一,用于创建可扩展和可扩展的项目。它还用于设计移动应用程序。
MVC 由Trygve Reenskaug创建。这种设计模式的主要目标是通过将大型应用程序拆分为具有各自用途的特定部分来解决用户控制大型复杂数据集的问题。
MVC的特点:
- 它提供了业务逻辑、UI 逻辑和输入逻辑的清晰分离。
- 它提供对您的 HTML 和 URL 的完全控制,这使得设计 Web 应用程序架构变得容易。
- 它是一个强大的 URL 映射组件,我们可以使用它来构建具有可理解和可搜索 URL 的应用程序。
- 它支持测试驱动开发(TDD)。
MVC 的组件:
MVC 框架包括以下 3 个组件:
- 控制器
- 模型
- 看法
控制器:
控制器是实现视图和模型之间互连的组件,因此它充当中介。控制器不必担心处理数据逻辑,它只是告诉模型该做什么。它处理所有业务逻辑和传入请求,使用模型组件操作数据并与视图交互以呈现最终输出。
看法:
View组件用于应用程序的所有 UI 逻辑。它为用户生成用户界面。视图是由模型组件收集的数据创建的,但这些数据不是直接获取的,而是通过控制器获取的。它只与编译器交互。
模型:
模型组件对应于用户使用的所有数据相关逻辑。这可以表示在 View 和 Controller 组件之间传输的数据或任何其他与业务逻辑相关的数据。它可以从数据库中添加或检索数据。它响应控制器的请求,因为控制器不能自己与数据库交互。模型与数据库交互并将所需的数据返回给控制器。
让我们通过一个例子来了解 MVC 框架的工作原理:
让我们假设最终用户向服务器发送请求以获取在班级学习的学生列表。然后,服务器将该请求发送到处理学生的特定控制器。然后,该控制器将请求处理学生的模型返回一个班级所有学生的列表。
该模型将在数据库中查询所有学生的列表,然后将该列表返回给控制器。如果从模型返回的响应是成功的,那么控制器将要求与学生关联的视图返回学生列表的演示文稿。此视图将从控制器获取学生列表并将列表呈现为浏览器可以使用的 HTML。
然后,控制器将获取该演示文稿并将其返回给用户。从而结束请求。如果早些时候模型返回错误,控制器将通过要求处理错误的视图呈现该特定错误的表示来处理该错误。然后该错误演示文稿将返回给用户,而不是学生列表演示文稿。
从上面的例子中我们可以看到,模型处理了所有的数据。视图处理所有的表示,控制器只告诉模型和视图做什么。这是 MVC 框架的基本架构和工作原理。
MVC的优点:
- 代码易于维护,并且可以轻松扩展。
- MVC模型组件可以单独测试。
- MVC的组件可以同时开发。
- 它通过将应用程序分成三个单元来降低复杂性。模型、视图和控制器。
- 它支持测试驱动开发(TDD)。
- 它适用于大型 Web 设计人员和开发人员团队支持的 Web 应用程序。
- 这种架构有助于独立测试组件,因为所有类和对象都是相互独立的
- 搜索引擎优化 (SEO)友好。
MVC的缺点:
- 很难阅读、更改、测试和重用这个模型
- 它不适合构建小型应用程序。
- 数据访问效率低下的观点。
- 框架导航可能很复杂,因为它引入了新的抽象层,需要用户适应 MVC 的分解标准。
- 数据的复杂性和低效性增加
流行的 MVC 框架:
下面列出了一些最流行和广泛使用的 MVC 框架。
- Ruby on Rails
- 姜戈
- 樱桃派
- 春季MVC
- 催化剂
- 导轨
- Zend 框架
- 燃料PHP
- 拉拉维尔
- 交响乐
MVC通常用于在单个图形工作站上运行的应用程序。逻辑组件的划分实现了可读性和模块化,也使测试部分更加舒适。