之前我有写过一个开源的Java实现的基于MVP架构的开源Android工程基本结构《MVP架构的Android基础框架》。
最近在用Kotlin做项目,计划使用MVP架构在开始一个新的项目,来继续聊聊Kotlin中MVP的实现。
参考链接:
- [1] . 《MVC,MVP 和 MVVM 的图示》
- [2] . 《浅谈 MVC、MVP 和 MVVM 架构模式》
- [3] . 《Android MVP 不一样的实现方案》
MVP架构
复杂的软件必须有清晰合理的架构,否则无法开发和维护。MVC(Model-View-Controller)是最常见的软件架构之一,业界有着广泛应用。
MVC中所有通信都是单向的。
- View 传送指令到 Controller
- Controller 完成业务逻辑后,要求 Model 改变状态
- Model 将新的数据发送到 View,用户得到反馈
MVP 模式将 Controller 改名为 Presenter,同时改变了通信方向,MVP 非常重要的一点是基于测试,P 层不应该有任何 android sdk 的代码,mock M 和 V 层后,可以脱离 android 直接对 P 层进行 Java Test。