软件开发中的MVC架构

在 1990 年之前,创建具有特定架构的应用程序并不那么重要。从那时起,应用程序每天都变得越来越复杂,以防止新威胁利用应用程序。此外,随着编程世界的日益扩大,聪明的人们正在发明新的方法来创建可以帮助我们快速轻松创建应用程序的应用程序。有一种架构叫做 MVC,是由 Trygve Reenskaug 在 1970 年代发明的。

什么是 MVC?

MVC 代表 Model-View-Controller。它是一种架构或软件设计模式,使创建大型应用程序变得简单。它不属于特定的编程语言或框架,而是一个概念,您可以在任何编程语言中创建任何类型的应用程序或软件时使用它。

例如,如果您正在使用 PHP 开发应用程序,您可以使用像 Laravel 或 Codeigniter 这样使用 MVC 架构的框架来帮助您快速简单地开发应用程序。如果您以前创建过没有使用任何架构或框架的非常简单的应用程序,那么一开始可能会对 MVC 结构感到有些困惑。但是,本指南旨在解释如何在 MVC 架构上工作。一旦您理解了它的工作原理,您将会喜欢在 MVC 上工作。

这是 MVC 架构如何在简单易懂的插图中运作的方式。

我们现在讨论的架构包含三个不同的部分。这些不同的部分是模型(Model)、视图(View)和控制器(Controller)。它们每一个在应用程序开发中都扮演着重要的角色。让我们详细了解这三个架构部分。

MVC 中的模型是什么?

模型直接与数据库交互。它不必处理用户界面或数据处理。在现实世界的场景中,您将简单地使用模型从数据库中提取、插入、更新和删除数据。

为了实际解释,想象我们正在创建一个任务管理应用程序,它将允许用户根据日期和时间组织任务。这意味着我们将在数据库中管理用户和任务。在 MVC 的术语中,用户和任务是我们应用程序中的模型。

因此,我们将在我们的应用程序中创建两个模型,分别命名为用户和任务。请注意,模型之间也存在关系。在这种情况下,每个任务都属于特定用户,一个用户可能有多个任务。因此,我们将在我们的用户模型中有一个方法来获取所有用户的任务,我们将在我们的任务模型中有一个方法来获取一个用户。

除此之外,我们还将在两个模型中拥有一些方法,如在我们的模型中创建、更新、删除,这将简单地从我们的表中删除记录。例如,如果您想创建一个用户帐户,只需运行以下代码。

$user = User::create([
    'firstname' => 'John',
    'lastname' => 'Doe',
    'email' => 'johndoe@example.com',
]);

此代码遵循 PHP 语法,但您可以在任何编程语言中执行相同的操作。现在,假设用户请求更改数据库中的名称。以下是我们将如何更新我们的模型。

$user = User::where('email','johndoe@example.com')->first();
$user->firstname = 'John2';
$user->lastname = 'Doe2';
$user->save();

要删除特定用户,我们只需使用模型的删除方法,该方法将删除用户帐户以及用户在我们系统上拥有的所有任务(外键)。要显示所有数据,我们在应用程序中使用 MVC 架构视图。

MVC 中的 VIEW 是什么?

简单来说,View 是客户/用户可以执行某些操作的用户界面。它包含 HTML、CSS、JS、XML 或任何其他我们可以用来创建漂亮用户界面的标记语言。它还包含用于显示从我们的应用程序接收到的数据的代码。

View 的唯一两个任务是在用户界面上向客户/用户显示数据,并响应事件。例如,当用户点击“更新”或“删除”按钮时该怎么办?答案是,用户应该被重定向到更新表单或删除确认弹窗。

现在,是时候向我们的客户/用户展示他们在我们示例任务管理应用程序中的任务了。我们将以表格格式展示。现在,我们可以使用我们的模型获取特定用户的所有任务。不知何故,让我们假设我们有特定用户的所有任务存储在一个 $tasks 变量中。

要显示数据,我们将简单地创建一个带有所有 HTML 标记的视图。我们将运行一个 for 或 foreach 或 while 循环来迭代 $tasks 变量。而且,我们还将放置更新和删除 URL 的链接。账户中的视图称为索引视图。它将仅以表格格式显示任务列表。我们还将为我们的任务模型创建创建和更新视图。

同样,注册是我们用户模型的创建视图。在我们的管理面板中所有用户的列表是我们用户模型的索引视图。因此,简而言之,视图是显示数据并将事件(如更新、删除和创建)发送到相应控制器的用户界面。

MVC 中的控制器是什么?

现在来到架构中最有趣的部分,控制器。控制器是我们在从视图获取请求后处理数据的部分,在更新我们的数据库中的任何内容之前。

想象一下,我们应用程序的主页提示用户输入他想在我们的应用程序中管理的三个任务。一旦他输入了这三个任务,他将被重定向到注册表单,同时带有这三个任务。注册后,这三个任务将出现在仪表板中。

控制器使我们更容易管理这种情况。这是因为控制器包含我们可以根据需要编程的功能。例如,在我们的用户控制器中接收数据后,我们将在存储方法中简单地创建一个用户账户。创建用户账户后,我们将检查用户是否提交了任何任务,以及姓名和电子邮件。

如果用户已提交任务,我们将在返回“注册成功”消息给注册视图之前创建用户的任务。

在我们的任务管理应用程序中,我们将有两个名为 UserController 和 TaskController 的控制器。控制器包含像 Create、Update、Destroy、Store 和 Show 这样的方法。如果用户访问 Index 或 Show 或 Update 视图,它将简单地从模型中获取数据并将其返回到视图中的一个变量。

现在,让我们讨论 MVC 架构的优缺点。

MVC 架构的优缺点

每种架构都有一些优缺点,MVC 架构也不例外。首先,让我们看看它的优点。

MVC 架构的优点:

  • 应用程序的开发变得更快。

  • 多个开发人员之间合作和共同工作变得更容易。

  • 更新应用程序变得更容易。

  • 应用程序中有多个级别正确编写,更容易调试。

MVC 架构的缺点:

  • 很难理解 MVC 架构。

  • 必须对方法有严格的规定。

在架构的缺点部分并不多。与我们获得的所有好处相比,这些缺点并不那么严重,非常容易忽略。

  • 13
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值