📜  什么是 Android 中的清洁架构?

📅  最后修改于: 2022-05-13 01:58:45.147000             🧑  作者: Mango

什么是 Android 中的清洁架构?

随着技术的发展,如果您想构建一个出色的软件程序,正确的架构是至关重要的,这就是它如此重要的原因。如果您有兴趣借助干净的架构创建 android 应用程序,那么您来对地方了。在这里,我们不仅为您提供 MVVM(模型视图 - 视图模型)教程,而且我们将使用 MVVM 通过清洁架构连接它。本文将探讨如何利用这种设计来创建解耦、经过测试和可维护的代码。在开始我们的主要讨论之前,让我们先了解一下 MVVM。

MVVM

Model-View-ViewModel (MVVM) 是一种软件设计框架,将程序逻辑与用户界面控件分开。它是由两位著名的微软架构师Ken Cooper 和 John Gossman在 2005 年推出的。此外,MVVM 也被称为model-view-binder 。与许多其他设计模式一样,MVVM 有助于组织代码并将程序分离为模块,从而使代码开发、更新和重用更容易、更快捷。该设计常用于 Windows 和 web 图形演示软件。 Windows Presentation Foundation (WPF) 在 Microsoft 的 .NET 平台上运行,采用 MVVM 设计。 Silverlight 也使用 MVVM,这是一个 Microsoft WPF 互联网可比多媒体插件。

Android 中的清洁架构

清洁架构是一种软件开发方法,您应该能够仅通过查看程序的源代码来识别程序执行的操作。实现程序目标所需的编程语言、硬件和软件库应该被淘汰。与其他软件设计理念一样,Clean 架构旨在提供一种成本效益高的流程来开发性能更好、更容易更改且依赖更少的高质量代码。 Robert C. Martin建立了干净的架构,并于 2011 年在他的博客 Uncle Bob 上对其进行了推广。

那么,您一定想知道为什么架构是必不可少的?让我们深入挖掘。所有架构的目的都是管理应用程序的复杂性。在一个小项目上,你可能不需要担心它,但它可以成为大项目的救星。我相信你可能已经看过这张照片了。

Android 中的清洁架构

上面的环代表您的应用程序中不同级别的软件。在我们继续之前,有两个关键点需要记住:

  1. 最抽象的圆在中间,最具体的圆在外面。抽象原则就是所谓的。根据抽象原则,内圈应该包含业务逻辑,而外圈应该包含实现细节。
  2. 依赖规则是另一个干净的架构原则。该规则规定,每个圆只能依赖最接近它的内圆,从而使架构能够函数。

或许,现在是时候了解为什么使用干净架构的 MVVM 了?

具有干净架构的 MVVM

您的视图,即(活动和片段),使用 MVVM 与您的业务逻辑分离。对于小型项目,MVVM 就足够了,但是随着您的代码库变得越来越广泛,您的 ViewModel 开始膨胀。分离职责变得具有挑战性。在这种情况下,具有 Clean Architecture 的 MVVM 是一个合适的选择。它在分离代码库的职责方面更进了一步。可以在您的应用程序中执行的操作的逻辑是抽象的。现在,Clean Architecture 也可以与 Model-View-Presenter (MVP) 架构相结合。因此,我们将使用 MVVM 而不是 MVP,因为 Android 架构组件已经有一个内置的 ViewModel 类——不需要 MVVM 框架!

在我们继续之前,您需要清楚使用清洁架构可以有其优点和缺点。让我们一一检查。

清洁架构的优势

  • 代码比标准 MVVM 更容易测试。
  • 完美策划的分离(最显着的优势)。
  • 用户友好的包结构。
  • 易于保持项目运行。
  • 您的团队将能够更快地实施新功能。

清洁架构的缺点

  • 学习曲线有点陡峭。可能需要一些时间来了解所有级别如何交互,特别是如果您来自简单的 MVVM 或 MVP 等架构。
  • 它包含许多额外的类,因此不适合复杂程度较低的应用程序。

现在,让我们看看这个过程中涉及的图层。

将 MVVM 与清洁架构相结合

下面,我们将向您展示具有清洁架构的 MVVM 的图形表示。

MVVM 层

对于 Clean Architecture 应该具有的级别数量存在不同的观点。该设计没有指定单独的层,而是奠定了基础。这个概念是您根据需要调整层数。在这里,为了简短起见,我们将使用五个,看看它们。

  • Presentation:这是与(UI)用户界面交互的层。
  • 域:应用程序的业务逻辑存储在这里。
  • 用例:交互器是它们的另一个名称。
  • 数据:所有数据源都是广义上定义的。
  • 框架:实现与 Android SDK 的接口以及具体的数据层实现。

何时使用清洁架构?

重要的是要记住,干净的架构不是补救措施,而是可以应用于任何平台。根据项目,您应该确定它是否满足您的要求。例如,如果您的项目庞大且复杂,具有很多业务逻辑,那么 Clean 架构就有很多优势。然而,对于更小更简单的任务,这些好处可能并不值得——你最终会编写更多的代码并增加所有层的复杂性,以及投入更多的时间。