MV*模式的个人理解

Posted 等风来

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MV*模式的个人理解相关的知识,希望对你有一定的参考价值。

MV*模式主要解决的问题就是 View代码难以维护的问题。

MV*模式将View中的逻辑分离出去,形成一个弱逻辑的易于维护的视图。

MV*中的*是Model和View的桥梁,负责保持Model和View的同步。

MVC模式

Model,View,Controler,Controler负责视图逻辑,数据流向为 View -> Controler,Controler -> Model,Model -> View,三种呈环形结构

技术分享

MVC缺陷 

技术分享

MVP模式

Model,View,Presenter,Presenter负责视图逻辑,数据流向为 View <-> Presentrer, Presenter <-> Model, Persenter成为View和Model的中介,不允许Model和View直接通信,MVP一定程度上解决了MVC的问题,但是Presenter将会非常复杂

技术分享

MVVM模式

Model,View,ViewModel,ViewModel负责视图逻辑,数据流向 View <-> ViewModel, ViewModel <-> Model, 进化版的MVP模式,将Presenter改为ViewModel。其中的Model为纯数据,不包括视图元素状态(显示/隐藏,高亮,禁用/启用等)。而多数的MVVM框架,ViewModel包含Model,ViewModel是数据和业务逻辑的集合体,View和ViewModel的同步是采用data-binding的形式。实际上,形成如下演变模式, View <-> ViewModel,说是VVM模式也许更贴切,目前这种方式被推崇为前端领域的最佳实践

技术分享

 

以上是关于MV*模式的个人理解的主要内容,如果未能解决你的问题,请参考以下文章

关于代理模式的个人理解

个人对单例模式的理解

关于建造者模式的个人理解

关于适配器模式的 个人理解

关于观察者模式的 个人理解

个人理解PHP设计模式