MVC、MVVM、MVP小结

MVVM

MVVM(Model View ViewModel)耦合性比较松,灵活性更强。

M —— 模型 负责业务逻辑和数据的封装

V —— 视图 只负责界面和显示,与显示逻辑无关

VM —— 视图模型 负责了所有的显示逻辑,在模型的基础上对模型数据进行封装,并定义了显示层的逻辑,负责模型与视图的交互。

一个视图模型(VM)可以为多个视图(V)服务,视图层(V)只需要选择视图模型(VM)中的属性、方法并绑定。

优点:

① 低耦合 view可以独立于model变化和修改

② 可重用性 很多view可以用同一个viewmodel

③ 独立开发

④ 可测试 可以针对viewmodel来写测试,测试界面


MVP

MVP(Model View Presenter)切断了view和model的联系,让view只和presenter(原controller)交互,减少在需求变化中需要维护对象的数量。

MVP定义了presenter和view之间的接口,让一些可以根据已有的接口协议去各自分别独立开发,以此去解决界面需求变化频繁的问题。

MVP优点:

① 模型与视图完全分离,可以修改视图但不影响模型

② 可以更高效的使用模型,因为所有的交互都发生在presenter(展示器)内部

③ 可以将一个presenter用于多个视图,而不需要改变presenter的逻辑

④ 如果把逻辑放在presenter中,就可以脱离用户接口来测试这些逻辑(单元测试)

MVP缺点:

因为对视图的渲染presenter中,所以视图和presenter的交互过于频繁。如果presenter过多的渲染了视图,往往会使得它与特定的视图的联系过于紧密,“动一发很可能要牵另一发”。

本文链接:http://www.cnblogs.com/xsilence/p/5998907.html

posted @ 2016-10-26 00:58  silencetea  阅读(543)  评论(0编辑  收藏  举报