初学者的架构模式:MVC、MVP 和 MVVM
构建软件可能很复杂。
在构建你的副项目时你可能不需要考虑太多,但生产软件有所不同。
它可能需要多个组件,如果处理不正确,所有组件都可能导致混乱。
但它并不需要这么复杂。在今天的文章中,我们将深入研究架构模式的世界,并讨论如何将软件划分为 3 个简单组件,每个组件都专注于相关任务。
架构模式
每当我们谈论软件设计中的架构模式时,首先列出的模式包括客户端-服务器、分层、单片、微内核、事件驱动等架构。这些模式涉及整个系统架构,包括多个应用程序、服务、服务器等。
然而,MVP、MVC 和 MVVM 专注于通过分离数据、用户界面和逻辑来组织单个应用程序中的代码。这些是专注于整个系统的架构模式的子集。

MVC、MVP 和 MVVM
为了保持博客的可读性并且不超过字数,我们将仅关注在单个应用程序中组织代码的架构模式,即:
显然,这三种模型都有两个固定的组件,即模型和视图。因此,在讨论每种架构之前,我们先详细讨论一下它们。
模型
该模型由与软件中存在的**数据**相关的所有代码组成。它是数据库和网络层与应用程序其余部分进行通信的层。其主要职责包括:

看法
视图基本上是应用程序的前端,或者用户能够看到并与之交互的所有内容。它也被称为应用程序的用户界面 (UI)。其职责包括:
模型-视图-控制器 (MVC) 架构

现在我们已经了解了模型层和视图层的作用,让我们看一下单独的架构模式。
从 MVC 开始,它使用与模型层和视图层通信的 **控制器** 层。
控制器的主要职责包括:
这里,虽然视图层不能直接与模型层交互,但它可以根据数据的变化接收更新。因此,所有三层都以某种形式相互连接,而控制器是主要组件。
模型-视图-演示器 (MVP) 架构

在这里,Presenter 层承担了 Model 层和 View 层之间“中间人”的功能,并处理它们之间的所有通信。Model 层和 View 层之间根本不直接进行通信。
其职责包括:
模型-视图-视图模型 (MVVM) 架构

乍一看,该架构与 MVP 架构几乎相同。但它们之间有一些关键区别:
并排比较
但你可能会问,哪种架构最受欢迎?它们都是同样受欢迎的架构,可根据公司对产品的各自要求使用。采用这些不同架构的一些公司包括:
此外,许多公司根据每个项目或产品的具体需求混合使用这些架构。架构的选择通常取决于应用程序的复杂性、开发团队的专业知识以及项目的具体要求等因素。
结论
本文介绍了架构模式的基础知识,从如何设计整体架构到如何将单个应用程序进一步划分为三个组件以实现更好的管理和可扩展性。
它们之间没有明显的优胜者,每种模式都有独特的优势,适合不同的项目和开发场景。随着软件开发格局的不断发展,我们可能会看到这些模式的进一步完善,或者出现新的架构。
想要进一步了解所讨论的架构模式吗?以下是我发现的一些有用的参考资料: