安卓开发中的MVP架构模式与实例
文章目录
在入门安卓开发的阶段,初学者经常会把所有业务逻辑都挤到
MainActivity
类中。这种做法最终会导致Activity的UI与应用数据处理机制过于紧密相连。此外,它也会导致应用变得很难维护和扩展。为了避免程序在维护、可读性、可扩展性、可重构性方面的不足,开发者更倾向于一个分离良好的代码曾。在软件上应用架构模式,我们可以通过组织应用程序的代码,将关注的问题分开对应。
相较于传统web应用的 MVC 架构模式,安卓应用的**MVP (Model — View — Presenter)**模式作为替代品横空出世。
MVC架构模式的弊端
- 大多数核心业务逻辑停留在Controller层。在应用开发过程中,该层会逐渐变重并且变得难以维护
- 由于UI和数据访问机制之间的紧密相连,Controller 和 View 层同属于同一个activity或者fragment,这导致修改应用的功能将变得十分困难
- 不同层的单元测试会很困难,因为大多数测试部分都需要Android SDK组件。
MVP架构模式的特点
MVP 模式克服了上述MVC模式的弊端,并且提供了一条更简单地构建项目代码的方法。MVP被广泛接受的原因为,它提供了模块化、可测试性以及一个更干净和可维护的代码库。它由下属三个部分组成:
- **Model:**用于储存数据。负责处理主业务逻辑已经与数据库、网路通信
- View: UI层,用于展示数据、捕捉用户动作并通知Presenter层
- Presenter: 从model层拉取数据,应用UI逻辑决定如何展示数据。管理View的状态并且处理用户在View层的输入与行为
MVP架构的关键点
- View-Presenter 和 Presenter-Model之间的通信依赖于接口(也被称为联系 Contract)
- 一个Presenter管理一个View,一对一关系
- Model和View的类不知道彼此的存在(它们之间没有关系)
MVP架构的安卓应用实例
这是一个单活动安卓应用。应用在View(Activity)展示一些在Model层中随机挑选的字符串。Presenter主要用以维持业务逻辑。应用中使用Java或Kotlin。
创建新的项目
- File - New - New Project
- 选择 Empty activity
- 选择 Java/Kotlin 作为语言
- 选择一个你需要的SDK
修改String.xml文件
在activity中使用的string都在此文件中