朋友们,当咱们从头开始任何项目时,咱们总是必须做出困难的决议,这就是咱们应该挑选的架构。它实际上取决于多种因素,例如复杂性、持续时间、模块、团队规模……等等。

因此,为了让这个决议变得容易,咱们将评论首要运用的三种架构 MVVM、MVC 和 MVP。那么让咱们开始吧……

介绍:

在开发 Android 应用程序时,挑选正确的架构形式关于保证代码库的可保护性、可扩展性和可测验性至关重要。Android 国际中三种盛行的架构形式是 MVVM(模型-视图-视图-模型)、MVP(模型-视图-呈现器)和 MVC(模型-视图-控制器)。

在本文中,咱们将评论每种形式的特征和优点,帮助您做出明智的决议,决议鄙人一个 Android 项目中选用哪种形式。

1.模型-视图-视图-模型(MVVM):

MVVM 是一种架构形式,它促进用户界面 (View)、事务逻辑 (ViewModel) 和数据 (Model) 层之间的关注点明晰别离。MVVM的关键组件如下:

  • 模型:代表应用程序的数据和事务逻辑。

  • 视图:处理用户界面并供给数据的可视化表明。

  • ViewModel:充任模型和视图之间的中介,揭露数据并处理用户交互。

MVVM 的优点:

  • 关注点别离:MVVM 完成了 UI 和事务逻辑之间的明晰别离,使代码库更加模块化和可保护。

  • 可测验性:ViewModel 能够经过运用单元测验轻松地进行独自测验,由于它不直接依赖于 Android 框架。

  • 数据绑定:MVVM 运用数据绑定,答应在 View 和 ViewModel 之间自动同步数据,然后削减样板代码。

MVVM 示例:

假定您正在开发一个气候应用程序。在 MVVM 形式中,视图层将包括显现气候信息的活动或片段,而视图模型将处理数据处理和检索。该模型将封装气候数据并供给从 API 或数据库获取数据的办法。

ViewModel 将揭露 View 观察到的 LiveData 目标。每逢气候数据发生变化时,ViewModel 就会更新 LiveData,View 也会自动反映更新后的信息。数据绑定可用于将 View 组件直接绑定到 ViewModel 特点,然后削减手动更新的需要。

2.模型-视图-呈现器(MVP):

MVP 是 Android 开发中另一种盛行的架构形式。它侧重于别离视图、演示器和模型组件之间的责任。MVP的关键组成部分如下:

  • 模型:处理应用程序的数据和事务逻辑。

  • 视图:显现用户界面并将用户操作传达给演示者。

  • Presenter:充任视图和模型之间的中间人,处理用户交互并更新视图。

MVP的优点:

  • 关注点别离:MVP 答应 UI、事务逻辑和数据层之间明晰别离,使代码库更易于保护和测验。

  • 可测验性:Presenter 能够经过运用单元测验轻松地进行独自测验,由于它不依赖于 Android 框架。

  • 灵活性:MVP 答应自定义视图层而不影响其他组件。

MVP 示例:

继续评论气候应用场景,在 MVP 中,视图层将包括显现气候信息的活动或片段。演示者将充任视图和模型之间的中介。该模型将处理数据检索和处理。

视图将通知演示者用户交互或事情,例如单击按钮以改写气候。然后,演示者将从模型中获取更新的气候数据并相应地更新视图。View 和 Presenter 经过接口进行通信,以保持松懈耦合并简化测验。

3.模型-视图-控制器(MVC):

MVC 是最古老的架构形式之一,广泛应用于各种软件开发范例中。它由三个首要部分组成:

  • 模型:代表数据和事务逻辑。

  • 视图:处理用户界面,显现模型中的数据。

  • 控制器:充任模型和视图之间的中介,处理用户输入并相应地更新模型或视图。

MVC的优点:

  • 关注点别离:MVC 别离了模型、视图和控制器之间的责任,增强了代码的组织性和可保护性。

  • 可扩展性:MVC 答应经过增加新的控制器或视图来轻松扩展应用程序。

  • 了解性:MVC 是一种众所周知的形式,已在许多框架中运用,使开发人员更容易了解和运用现有代码库。

MVC 示例:

在MVC形式中,View层会再次显现气候信息。该模型将处理数据,例如从 API 获取气候数据。控制器将从视图接纳用户输入并相应地更新模型或视图。

例如,当用户挑选新方位时,控制器将从视图接纳该输入,运用新方位数据更新模型,然后指示视图改写并显现更新的气候信息。

结论:

为您的 Android 项目挑选正确的架构形式关于保证代码的可保护性、可扩展性和可测验性至关重要。MVVM、MVP 和 MVC 是盛行的形式,它们具有不同的优点并适合不同的开发风格。MVVM 供给了强壮的关注点别离,运用数据绑定并进步可测验性。MVP 经过将责任划分为不同的组件来关注模块化和可测验性。MVC 是一种经典形式,供给了解性和可扩展性。

最终,MVVM、MVP 和 MVC 之间的挑选取决于项目的具体要求、团队专业知识和个人偏好。仔细评估每种形式的优缺点并挑选最符合项目目标和限制的形式非常重要。