完整的Android MVP开发之旅

2019-12-10 18:59:28刘景俊
这篇文章主要为大家介绍了完整的Android MVP开发之旅,总结自己开发Android MVP的全过程,感兴趣的小伙伴们可以参考一下  

开发背景
最近是在做一个与健身相关的APP,里面有训练器模块基本功能是按照特点动作的演示和描述来引导用户完成训练。在第一个版本时由于没接触过些类项目与功能花了几周的时间大概1500行代码才完成这个功能,
当时虽然我已经尽量让代码表现的清晰,但是可以想像到当一个Activity中包含这么多代码是什么感觉。自己维护起来都难受。

先谈设计
有了前一次设计经验此次开发使用MVP、模块化、面向接口等概念,将整个训练器分为控制器、数据模型、音频、视图、可训练对象五个模块分别用以下接口表示:

  • ITrainerController
  • ITrainerModel
  • IAudioFlow
  • ITrainerView
  • ITrainable

    去掉一些抽象类后接口图如下:

    完整的Android MVP开发之旅

    设计以上接口后引入MVP概念使用ITrainerController做为Presenter,ITrainerModel做Model,ITrainerView做View下面介绍主要模块。

    控制器
    可以用在MVC和MVP中这取决于用哪种开发模式,在我开发的项目控制器用来控制训练器的运行管理训练器的生命周期如训练、暂停、休息、完成等状态协调ITrainerModel、ITrainerView、IAudioFlow等各个模块。
    在使用过程中控制器并不止一个这也是抽象出一个接口的原因,ITrainerController接口继承IPresenter接口使其能做为Presenter使用。

    完整的Android MVP开发之旅