MVC在android中的体现:
视图View层——XML文件
Model层——本地数据文件或网络获取的数据体、数据的处理
Controller——Activity、Fragment
由用户与view的交互开始,发送命令给Activity/fragment,Activity/fragment获取Model,进行业务逻辑,然后修改Model或者将Model设置给View
MVP:
分离显示层和逻辑层,它们之间通过接口进行通信
具体来说,就是将Activity的部分逻辑分离到Presenter中,通过让Activity实现自定义的视图显示接口,然后将自己传递给Presenter,建立联系,Presenter在获得Model后,就建立了MVP模式了,其中,请求本地文件数据或者网络数据的业务逻辑放置在Presenter中,而最后的更新UI是通过Presenter中的回调接口实现的,也就是在Activity中实现
MVP中,Activity几乎只是用来初始化UI的,职责单一、功能简单、易于维护
每一个自定义的视图显示接口都对应了一种视图的改变方式,也就是说,当有的新的UI改变方式时,需要定义新的接口,或者扩展接口
当有新的UI也需要一样的改变方式时,只需要实现接口,并传递给Presenter就可以协作起来了