android设计架构之MVC、MVP、MVVM的理解

引用网上的一张图来阐述Model-View-Controller,Model-View-Presenter,Model-View-ViewModel;

Model-View-Controller:是我们最常用到的模式,服务器端开发就用的这个模式,android端来看的话,Activity其实即作为View和Controller,一方面需要对布局即界面进行展现,另一方面需要向服务器请求数据,服务器返回的数据需要传给View;因此这个模式的Activity看起来代码会非常臃肿,耦合性较差。

Model-View-Presenter:这个模式很好的将View和Model解耦了,大部分的业务逻辑代码从Activity移动到了Presenter层,Presenter需要持有View和Model两个接口的引用,一方面Presenter需接受View层传递过来的请求;另一方面将向请求服务器端返回的结果save到Model层(同时将结果update到View层)。从图中结构图看,View层与Model完全分离了。

Model-View-ViewModel:此模式说是MVP模式的升级版,与MVP主要区别在于View层的界面与Model数据是双向绑定的,也就是说我不需要在手动去update,当View数据一改动将会立即自动同步到ViewModel层,相反ViewModel数据变更也会同步到界面,这个数据绑定的过程google已经帮你做好了。而MVP这个过程需要手动去set或者update。

猜你喜欢

转载自blog.csdn.net/liangtianmeng/article/details/81324473