通过应用软件架构模式来开发安卓应用,总是被开发者所青睐。架构模式为项目文件提供了模块化,并确保所有的代码在单元测试中得到覆盖。它使开发人员很容易维护软件,并在未来扩展应用程序的功能。MVC(模型-视图-控制器)和MVP(模型-视图-展示者)是开发者中最流行的两种安卓架构。

模型-视图-控制器(MVC)模式

MVC模式建议将代码分成三个部分。在创建应用程序的类/文件时,开发者必须将其分为以下三层之一。

  • 模型:这个组件存储应用程序的数据。它对接口没有了解。模型负责处理领域逻辑(现实世界的业务规则)以及与数据库和网络层的通信。
  • 视图:它是UI(用户界面)层,持有在屏幕上可见的组件。此外,它提供了存储在模型中的数据的可视化,并向用户提供交互。
  • 控制器:这个组件建立了视图和模型之间的关系。它包含了核心的应用逻辑,了解用户的行为并根据需要更新模型。

模型-视图-展示者(MVP)模式

MVP模式克服了MVC的挑战,提供了一种简单的方法来组织项目代码。MVP被广泛接受的原因是它提供了模块化、可测试性,以及一个更干净和可维护的代码库。它由以下三个部分组成。

  • 模型:用于存储数据的层。它负责处理领域逻辑(现实世界的业务规则)以及与数据库和网络层的通信。
  • 视图:UI(用户界面)层。它提供数据的可视化,并跟踪用户的动作,以便通知演示者。
  • 展示者:从模型中获取数据并应用UI逻辑来决定显示什么。它管理视图的状态,并根据用户从视图的输入通知采取相应的行动。

MVC和MVP设计模式的主要区别 –

MVC(Model View Controller) MVP(Model View Presenter)
最古老的软件架构之一 作为软件架构的第二次迭代,它比MVC更先进。
UI(视图)和数据访问机制(模型)是紧密耦合的。 视图与模型是松散耦合的。
控制器和视图层属于同一个活动/片段。 视图-展示者和展示者-模型之间的通信通过一个接口发生。
用户输入由控制器处理,它指示模型进行进一步的操作。 用户输入由View处理,它指示presenter调用适当的函数。
控制器和视图之间存在多对一的关系,因为一个控制器可以根据需要的操作选择不同的视图。 展示者和视图之间存在一对一的关系,因为一个展示者类一次管理一个视图。
控制器是总负责人,因为它创建了适当的视图并根据用户的要求与模型进行交互。 视图是这个模式中的总负责人,因为视图调用Presenter的方法,而Presenter进一步指导Model。
对单元测试的有限支持 高度支持单元测试。