MVC、MVP、MVVM的简单了解以及它们的优缺点概述

MVC:

简介:
(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:Model(模型)-View(视图)-Controller(控制器)。

总结:
MVC模式:是一种将业务逻辑、界面显示、数据存储分离开来的方法组织框架。

应用:
在Android中,Bean类为数据原型,xml布局文件显示视图,Activity类做逻辑跳转。
但实际上Activity即显示视图,又控制逻辑。

优缺点:

优点: 分离类的UI与业务职责,增加可测试性与可扩展性,降低了程序的耦合度,提高了代码的重用性。(耦合:紧密配合与相互影响)

缺点:View既依赖于Controller又依赖于Model,解耦程度不足。

MVP:

简介:
Model(模型)-View(视图)-Presenter(主持者)。 由MVC演变而来的一种模式。

区别:
Presenter将View与Model分离,使得View和Model之间不存在耦合,同时也将业务逻辑从View中抽离。所有的业务逻辑由Presenter主持者来控制。

优缺点:

优点:模块职责划分明显,增加可测试性与可扩展性,隐藏数据,降低了程序的耦合度,提高了代码的重用性与灵活性。

缺点:视图的渲染在Presenter中,所以视图和Presenter的交互会过于频繁。如果Presenter过多地渲染了视图,往往会使得它与特定的视图的联系过于紧密。
一旦视图需要变更,那么Presenter也需要变更了

MVC、MVP、MVVM的简单了解以及它们的优缺点概述_第1张图片


MVVM :

简介:
Model(模型)-View(视图)-ViewModel(视图模型)。

区别:
MVVM模式:采用双向绑定(data-binding):View的变动,自动反映在 ViewModel,反之亦然。
ViewModel主要包括界面逻辑和模型数据封装,Behavior/Command事件响应处理,绑定属性定义和集合。

优缺点:

优点:便于代码移植,兼容MVC,方便测试,降低了程序的耦合度,提高了代码的重用性。

缺点:类会增多,ViewModel会越加庞大,调用的复杂度增加。

MVC、MVP、MVVM的简单了解以及它们的优缺点概述_第2张图片

你可能感兴趣的