三层架构与MVC模式

三层架构

三层架构是一种以实现“高内聚,底耦合”为目标,的代码架构方法,它将整个业务分为,表示层,业务层,数据访问层(Dao层)。

MVC模式

MVC模式是一种软件设计的典范,一种组织代码的方法。

M 是 model 模型
V 是 view 视图
C 是 control 控制器

控制器是用来将不同的view和不同的model组织在一起。且mvc往往在三层架构中的表现层使用,如SpringMVC,Struct2等是优秀的用于表现层的mvc框架。MyBatis是常用于Dao层的框架。

区别

MVC是一种设计模式,是解决方案。三层架构是种软件架构方法。

MVVM模式

MVVM模式也是一种软件的架构模式,在它是(Model-View-ViewModel)的缩写,其核心是VM,VM是视图与模型之间的桥梁,它实现了视图与模型的相互映射。



在MVVM中模型的改变会引起视图的改变,视图的改变会引发模型的改变。

与MVC的异同

  1. MVVM没有MVC模式的控制器,也没有MVP模式的presenter,有的是一个绑定器。在视图模型中,绑定器在视图和数据绑定器之间进行通信。
  2. MVVM模式不同于MVC,在MVVM模式中,将ViewModel层绑定到View层后,它基本不使用点击事件,而是使用命令(Command)来控制。数据的显示也是不同于MVC,而是使用Binding来绑定相关数据。

MVVM实例

如VUE中的数据的双向绑定就是MVVM的一个应用:

<!-- 该dom下的div可以看作是view -->
<div id="example">{{message}}</div> <script>
// data 可以看作是数据模型 model
// Vue对象vm就是ViewModel
var vm = new Vue({
el: '#example',
data: {message:'zhangsan'}
})
</script>

浅析mvvm模式和mvc模式的区别和联系的更多相关文章

  1. 模型-视图-控制器模式(MVC模式,10种常见体系架构模式之一)

    一.简介: 架构模式是一个通用的.可重用的解决方案,用于在给定上下文中的软件体系结构中经常出现的问题.架构模式与软件设计模式类似,但具有更广泛的范围. 模型-视图-控制器模式,也称为MVC模式.是软件 ...

  2. iOS中常见的设计模式——单例模式\委托模式\观察者模式\MVC模式

    一.单例模式 1. 什么是单例模式? 在iOS应用的生命周期中,某个类只有一个实例. 2. 单例模式解决了什么问题? 想象一下,如果我们要读取文件配置信息,那么每次要读取,我们就要创建一个文件实例,然 ...

  3. Django的MVT模式与MVC模式

    Django的MVT模式与MVC模式 在正式开始coding之前,我觉得有必要探讨下Django的MVT模式,理论和实践相结合,才能更好的掌握一门技术.Django中的MVT模式,Django就是属于 ...

  4. (转)浅析三层架构与MVC模式的区别

    MVC模式介绍: MVC全名是Model ViewController,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用于组织代码用一种业务逻辑和数据 ...

  5. mvvm模式和mvc模式 概述总结对比

    1.mvc模式简介: MVC的全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计典范.例如: angular ...

  6. Web开发中 MTV模式与MVC模式的区别 联系 概念

    MTV 与 MVC模式的区别 联系 概念: MTV: 所谓MTV指的就是: M:model (模型),指的是ORM模型. T:template (模板),一般Python都是使用模板渲染的方式来把HT ...

  7. Android中MVP模式与MVC模式比較(含演示样例)

    原文链接 http://sparkyuan.me/ 转载请注明出处 MVP 介绍 MVP模式(Model-View-Presenter)是MVC模式的一个衍生. 主要目的是为了解耦,使项目易于维护. ...

  8. 【设计思想】MVC模式

    MVC 模式 MVC 模式(三层架构模式) MVC模式(Model-View-Controller, MVC): 是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图( ...

  9. MVC 模式

    1.MVC 模式简介 MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式.这种模式用于应用程序的分层开发.Model(模型):模型代表一个存取数据的对象或 JAV ...

  10. MVC模式浅谈

    MVC模式浅谈 一.MVC模式概述 模型-视图-控制器(MVC模式)是一种非常经典的软件架构模式,在UI框架和UI设计思路中扮演着非常重要的角色.从设计模式的角度来看,MVC模式是 一种复合模式,它将 ...

随机推荐

  1. 测试监控系列:使用vb批量统计nmon结果

    适用于一次统计几十台机器的nmon监控结果. 新建excel,在设置里打开开发者工具,点查看代码,把下面代码贴到模块里即可.最后把表格保存为.xlsm Sub for_nmon()'用来统计nmon结 ...

  2. 【Spring注解驱动开发】你敢信?面试官竟然让我现场搭建一个AOP测试环境!

    写在前面 今天是9月1号,金九银十的跳槽黄金期已拉开序幕,相信很多小伙伴也在摩拳擦掌,想换一个新的工作环境.然而,由于今年疫情的影响,很多企业对于招聘的要求是越来越严格.之前,很多不被问及的知识点,最 ...

  3. Win10下安装Java JDK 1.8 配置环境变量

    1.下载地址:https://www.oracle.com/java/technologies/javase-downloads.html 2.双击运行,下一步.下一步-- 3.新建变量名:JAVA_ ...

  4. KingbaseES 实现 MySQL 函数 last_insert_id

    用户从mysql迁移到金仓数据库过程中,应用中使用了mysql函数last_insert_id()来获取最近insert的那行记录的自增字段值. mysql文档中关于函数的说明和例子: LAST_IN ...

  5. 【Java】归并排序

    代码: 1 public static void mergeSort(int[] arr) { 2 if (arr == null || arr.length < 2) { 3 return; ...

  6. AtCoder Beginner Contest 240

    前言 考场把前六题切了,但是 E 题和 F 题罚时了,所以也写一写. ABC240 E - Ranges on Tree 题目传送门 分析 \(r\) 的最大值就是叶子的个数,如果将叶子按顺序编号, ...

  7. #排列组合,背包#CF232B Table

    题目 有一个 \(n\times m\) 的矩阵,求使得每个 \(n\times n\) 的矩阵中都有正好 \(k\) 个点的方案数. 分析 考虑到如果确定了前 \(n\) 列的选点个数,那么对于一列 ...

  8. #点分治#洛谷 4149 [IOI2011]Race

    题目 给一棵树,每条边有权.求一条简单路径,权值和等于 \(k\),且边的数量最小. 分析 点分治,记录一定权值的最小边数量, 每遍历一棵子树后统计答案 代码 #include <cstdio& ...

  9. 使用OHOS SDK构建lz4

    参照OHOS IDE和SDK的安装方法配置好开发环境. 从github下载源码. 执行如下命令: git clone --depth=1 https://github.com/lz4/lz4.git ...

  10. 数仓调优实战:GUC参数调优

    本文分享自华为云社区<GaussDB(DWS)性能调优系列实战篇七:十八般武艺之GUC参数调优>,作者: 黎明的风. 1. 前言 适用版本:[8.1.1及以上] GaussDB(DWS)性 ...