概述
此处记录MVP框架在实际开发过程中的使用情况。
正文
1.MVP?VP
mvp框架三个层级:model实体层、View视图层、Presenter控制层,分工明确,使代码条理清晰,大大增加了代码的可读性。但实际开发过程中发现,model层基本形同虚设,只是起到一个实体的作用,model层的职能基本被Presenter层覆盖,所有,mvp在实际开发中往往会变成vp。
2.VP的大致框架
Contract协调整个架构的接口
作为MVP框架的重要辅助,Contract是必不可少的,以下是相关代码:
interface SplashContract {
interface View {
//TODO 视图层相关操作
}
interface Presenter {
//TODO 逻辑层相关操作
}
}
代码很简单,两个接口,view和presenter,分别关联View和Presenter实现。
View页面布局逻辑等内容
class SplashActivity : BaseActivity(), SplashContract.View {
private var mPresenter: SplashContract.Presenter? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_splash)
//Presenter和View的连接点,在此处对Presenter进行初始化,
//以便能够在View中调用presenter的相关方法,有一个传参this是为了把View
//传递到Presenter中,从而能够在Presenter中调用到view的相关方法
mPresenter = SplashPresenter(this)
}
}
Presenter联网请求等业务逻辑存放处
class SplashPresenter(private val mView: SplashContract.View):
SplashContract.Presenter {
}
mView传入View的实例,使的View和Presenter能够互相关联。
后记
如果你的页面带有Fragment,同样的在架构在Fragment中建一套就好,此处就不赘述了。
——End——