MV*详解

MV*

  M-V- X 本质都是一样的 重点还是在于M-V 的桥梁 要靠 X来牵线。
  在MVC中,View了解Controller,Controller了解Model,View也可以直接访问Model。由于View直接访问Model,缺少一定的控制,可能会带来安全性和性能成本,这由程序的复杂性决定。MVVM试图解决这方面的问题。
  在MVP中,Controller被Presenter所替代。Presenter位于View和Model之间,监听二者事件,协调它们之间的行动。与MVVM不同,MVP没有将View绑定至ViewModel的机制,这就需要依赖每个View来实现用于让Presenter与View进行交互的接口。
  在MVVM中,Model可以特定于View,可以包含状态和逻辑信息,无需向View暴露整个Model。与MVP中的Presenter不同,引用View时不需要ViewModel。View可以绑定到ViewModel上的属性,而属性将Model包含的数据提供给View展示。View的抽象减少了背后所需的代码逻辑。然而,View与ViewModel之间需要进行解释,会有性能消耗。

MVC
  MVC全名是Model View Controller,是模型(Model)-视图(View)-控制器(Controller)的缩写。它强制将业务数据(Model)与用户界面(View)隔离,使用控制器(Controller)来管理逻辑和用户输入用户可以与View交互,包括读取和编辑Model,而更新Model的工作实际由Controller完成。
  MVC的一般流程是这样的:View(界面)触发事件 ==> Controller(业务)处理了业务,然后触发了数据更新==> 不知道谁更新了Model的数据 ==> Model(带着数据)回到了View ==> View更新数据。其模式图为

MVP
  MVP的全称为Model-View-Presenter,Model提供数据,View负责显示,Presenter负责逻辑的处理。是MVC框架模式的一种衍生模式,专注于改进表示逻辑。其模式图为


  MVP与MVC有着一个重大的区别: 在MVP中View并不直接使用Model,它们之间的通信是通过Presenter (MVC中的Controller)来进行的,所有的交互都发生在Presenter内部,而在MVC中View会直接从Model中读取数据而不是通过 Controller。

  MVC/P 模式仅仅只是用于表示层(presentation layer),理解这一点很重要。这两个模式并不是关于怎么构建数据层(data layer)和服务层(service layer)的,而是关于怎么将数据(data)从用户接口(view)中分离出来,以及用户接口如何与数据进行交互的。这些模式的使用让解除你的程序中表示层对对数据和控制逻辑的依赖,从而可以自由的变更表示层。

MVVM
  MVVM的全称为Model-View-ViewModel,其中可以将ViewModel看成一个专门的Controller,充当数据转换器,它将Model信息转变成View信息,还将命令从View传递到Model。为此,很多这种模式的实现都要利用声明式数据绑定来实现将View工作从其他层分离。
  (模型-视图-视图模型)是一种基于MVC和MVP的架构模式,它试图更清晰地将用户界面开发从应用程序的业务逻辑与行为中分离。ViewModel大致上就是MVP的Presenter和MVC的Controller了,而View和ViewModel间没有了MVP的界面接口,而是直接交互,用数据“绑定”的形式让数据更新的事件不需要开发人员手动去编写特殊用例,而是自动地双向同步。其模式图为

时间: 2024-10-29 03:10:46

MV*详解的相关文章

Linux 重命名命令 rename 和 mv 详解

刚学linux时,对文件重命名脑袋里立马呈现了rename命令,但却用不起来.G了一下,仍是一知半解,而且发现很多人对它也是很陌生!还有部分童鞋说直接使用mv,哎,mv还真管用,但老感觉命令名咋就那么不顺眼呢! 我们来man下吧,先man mv: mv - move (rename) files mv不仅有转移的功能,确实有重命名的含义,语法简单可理解为: mv [path/]oldfilename [path/]newfilename 但只能是重名为当个文件. 我们再来man rename:

【我的Linux,我做主】Linux系统文件操作之cp、rm、mv详解

对文本文件的操作非常基础而且和重要,掌握它们后操作文本你会更加得心应手.要复制文件,请使用cp(copy)这个命令,cp这个命令的用途可多了,除了单纯的复制之外,还可以建立建立快捷方式,对比两个文件的新旧程度从而决定是否更新,以及复制整个目录下的文件等功能.至于移动目录和文件,则使用mv(move),这个命令也可以直接作为文件重命名的作用.至于删除文件,就是使用rm(remove)这个命令,我们来具体瞧一瞧~[1]复制文件或目录:cp格式:cp [-adfilprsu] 源文件 目标文件cp [

CentOS7安装nagios并配置出图详解

目录 开始之前 系统环境 监控内容 所需软件包 Centos7重要变化 配置开发环境 同步时间 关闭Selinux 使用CRT上传软件包 安装邮件服务 监控主机安装 常用到的命令 安装nagios所需要的运行环境 增加用户 安装nagios 配置权限 安装插件 安装nrpe 远程主机安装 常用到的命令 配置运行环境 安装nagios-plugin 安装nrpe 启动nrpe. 监控主机安装PNP 配置开发环境 安装php4nagios (版本号为0.6) 配置pnp4nagios 图表展示 问题

Nginx反向代理、动静分离、负载均衡及rewrite隐藏路径详解(Nginx Apache MySQL Redis)–第三部分

Nginx反向代理.动静分离.负载均衡及rewrite隐藏路径详解 (Nginx Apache MySQL Redis) 楓城浪子原创,转载请标明出处! 更多技术博文请见个人博客:https://fengchenglangzi.000webhostapp.com 微信bh19890922 QQ445718526.490425557 三.Nginx动静分离及负载均衡 3.1 Nginx安装 请参考:https://fengchenglangzi.000webhostapp.com/?p=511 亦

三剑客之老二sed详解

    三剑客之老二sed 第1章 sed介绍 我们都知道,在Linux中一切皆文件,比如配置文件,日志文件,启动文件等等.如果我们相对这些文件进行一些编辑查询等操作时,我们可能会想到一些vi,vim,cat,more等命令.但是这些命令效率不高,这就好比一块空地准备搭建房子,请了10个师傅拿着铁锹挖地基,花了一个月的时间才挖完,而另外一块空地则请了个挖土机,三下五除二就搞定了,这就是效率.而在linux中的"挖土机"有三种型号:顶配awk,中配sed,标配grep.使用这些工具,我们

kickstart安装系统原理详解

前言 作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装. 常规的办法有什么? 光盘安装系统===>一个服务器DVD内置光驱百千块,百台服务器都配光驱就浪费了,因为一台服务器也就开始装系统能用的上,以后用的机会屈指可数.用USB外置光驱,插来插去也醉了. U盘安装系统===>还是同样的问题,要一台一台服务器插U盘. 网络安装系统(ftp,http,nfs) ===>这个方法不错,只要服务器能联网就可以装系统了

三剑客之 sed详解

    sed 作者:Jack.X 归档:学习笔记 2017/4/13 三剑客之sed 第1章 sed详解: 1.1 sed介绍: sed是linux命令中三剑客的老二,sed命令是操作.过滤和转换文本内容的强大工具,常用功能有增删改查(增加,删除,修改,查询).其中查询的功能中最常用的两大功能是过滤(过滤指定字符串),取行(取出指定行). 我先在用的sed版本是GNU开源版本的,实验环境是Centos6.8系统,内核是2.6.32-642.el6.x86_64 [[email protecte

31个有用的系统管理员命令详解(linux)

在开始之前,你必须了解一下linux 基本知识: centos7目录结构.文件类型及权限.inode解析.信号 最常用的linux命令行快捷键.centos7 vi编辑器及环境变量的使用 Linux进程优先级及调度原理 1.Uptime 命令显示:运行时间.登陆用户数及1,5,15分钟间隔负载. # uptime 08:16:26 up 22 min,  1 user,  load average: 0.00, 0.03, 0.22 Uptime 命令仅有一个版本选项而且仅显示一天内的小时:分钟

Nginx反向代理、负载均衡、页面缓存、URL重写及读写分离详解

大纲 一.前言 二.环境准备 三.安装与配置Nginx 四.Nginx之反向代理 五.Nginx之负载均衡 六.Nginx之页面缓存 七.Nginx之URL重写 八.Nginx之读写分离 注,操作系统为 CentOS 6.4 x86_64 , Nginx 是版本是最新版的1.4.2,所以实验用到的软件请点击这里下载:http://yunpan.cn/QXIgqMmVmuZrm 一.前言 在前面的几篇博文中我们主要讲解了Nginx作为Web服务器知识点,主要的知识点有nginx的理论详解.ngin