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*模式的个人理解的更多相关文章
- 界面之下:还原真实的 MV* 模式
界面之下:还原真实的MV*模式 作者:戴嘉华 转载请注明出处并保留原文链接( https://github.com/livoras/blog/issues/11 )和作者信息. 目录: 前言 MVC ...
- 【转载】PHP运行模式的深入理解
PHP运行模式的深入理解 作者: 字体:[增加 减小] 类型:转载 时间:2013-06-03我要评论 本篇文章是对PHP运行模式进行了详细的分析介绍,需要的朋友参考下 PHP运行模式有4钟:1) ...
- OSI七层模式简单通俗理解
OSI七层模式简单通俗理解 这个模型学了好多次,总是记不住.今天又看了一遍,发现用历史推演的角度去看问题会更有逻辑,更好记.本文不一定严谨,可能有错漏,主要是抛砖引玉,帮助记性不好的人.总体来说,OS ...
- 【整理总结】代码沉淀 - Caliburn.Micro - MV*模式短小精悍的框架
Caliburn.Micro - Xaml made easy. web: https://github.com/Caliburn-Micro/Caliburn.Microdocument: http ...
- MV*模式
MV*模式 MVC框架最早出现在Java领域,然后慢慢在前端开发中也被提到,后来又出现了MVP,以及现在最成熟的MVVM. MVC model 数据模型 view 视图 controller 控制器 ...
- 从命令模式的维度理解Spring 之Application Event
Spring的事件(Application Event)为Bean与Bean之间的信息通讯提供了支持.当一个Bean处理完一个任务之后,希望另一Bean指定并能做相应的处理,这时我们就需要让另外一个B ...
- 对于观察者模式,Reactor模式,Proactor模式的一点理解
最近就服务器程序IO效率这一块了解一下设计模式中的Reacotr模式和proactor模式,感觉跟观察者模式有些类似的地方,网上也看了一些其他人对三者之间区别的理解,都讲得很仔细,在此根据自己的理解做 ...
- WPF MVVM模式的一些理解
/*本文转自 http://www.cnblogs.com/sirkevin/archive/2012/11/28/2793471.html */ 使用WPF+Mvvm开发一年多,期间由于对Mvvm模 ...
- 由装饰者模式来深入理解Java I/O整体框架
前言 Java里面的I/O这一部分看过很多遍,每次看完之后特别混乱,又是输入流,又是输出流,又是字符流,又是字节流,还有什么过滤流,缓冲流.每次看得我如入云里雾里,直到后面看了设计模式这一块,才算真正 ...
随机推荐
- Android获取屏幕宽和高
android获取屏幕的高度和宽度用到WindowManager这个类,两种方法: 1.WindowManager wm = (WindowManager) getContext() ...
- 算法与数据结构之选择排序(C语言)
#include<stdio.h> #include<stdlib.h> void SelectSort(int *a,int n);//预声明要调用的函数 int main( ...
- xml序列化方式
public static class MySerializeXmlHelper { static MySerializeXmlHelper() { } private static object _ ...
- codeforces 723A : The New Year: Meeting Friends
Description There are three friend living on the straight line Ox in Lineland. The first friend live ...
- dotnet文件操作
/// <summary> /// 创建文件夹 /// </summary> /// <param name="sender"></par ...
- discuz /faq.php SQL Injection Vul
catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 . 通过获取管理员密码 . 对管理员密码进行破解.通过在cmd5.com ...
- ecshop /includes/modules/payment/alipay.php SQL Injection Vul
catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 ECSHOP支付插件存在SQL注入漏洞,此漏洞存在于/includes/ ...
- 数组、ArraryList和List三者的区别
在C#中数组,ArrayList,List都能够存储一组对象,那么这三者到底有什么样的区别呢. 数组 数组在C#中最早出现的.在内存中是连续存储的,所以它的索引速度非常快,而且赋值与修改元素也很简单. ...
- 加州大学伯克利分校Stat2.3x Inference 统计推断学习笔记: FINAL
Stat2.3x Inference(统计推断)课程由加州大学伯克利分校(University of California, Berkeley)于2014年在edX平台讲授. PDF笔记下载(Acad ...
- C/C++ 程序的build过程
(This article is under constant construction) DISCLAIMER: 本文的主要内容来自https://gcc.gnu.org/onlinedocs/gc ...