MVC框架

介绍:

  • MVC全名Model View Controller

    • Model:模型的意思,代表业务模型
    • View:视图的意思,代表用户界面
    • Controller:控制器的意思,控制器接受用户的输入并调用模型和视图去完成用户的需求。
  • MVC把各个层次需要关注的内容分离了开来。
    • MVC将负责显示数据的层次称为视图。View视图主要负责向用户显示数据。它负责与用户交互。
    • 视图负责与用户进行交互,用户可以在视图中进行数据交互,视图中接收到数据之后,控制器负责封装数据,根据业务来调用不同的业务模型去处理;模型接受到控制器发来的数据后,处理业务。

例子阐述:

  1. 用户在web页面中输入了账户和密码来进行余额查询操作(View)
  2. 视图封装数据传递给控制器,控制器识别出这是一个“查询余额”的业务请求。(View->Controller)
  3. 控制器识别出这是一个“查询余额”的业务请求之后,控制器继续封装数据,调用“查询余额”的业务模型来处理(Controller->Model)
  4. 业务模型接受到控制器传来的数据,进行数据库交互,查出余额,返回结果给视图(Model通常会把数据封装到对象当中),视图将业务模型返回过来的数据显示出来。(Model->View)【这里有时候需要更改视图的界面,比如你点击查所有用户,会跳转到一个新视图用来显示用户列表。这里的视图改变依赖于视图解析器 ,视图解析器会根据结果来进行不同的视图选择,有时候这个结果是模型给的(动态页面),有时候是控制器给的(静态页面)。】

注意:

  • 视图虽然是一个“交互界面”,但它很多时候都是基于对象模型来创建的,比如一个注册界面,很多时候注册页面的文本框的name属性都要与业务模型中的数据进行对应,这样可以很轻易地将数据封装起来。

三层结构:

介绍:

应用程序架构可以分为三个层次:表现层、业务层、持久层。

  • 表现层:(顶层)表现层负责用户界面的显示,并且负责帮助用户向业务层提交业务逻辑处理请求,通常还负责将业务层发来的处理结果显示到界面中。
  • 业务层:(中间层)业务层负责处理业务逻辑,它可以根据不同的业务来调用不同的代码来处理。
  • 持久层:(底层)持久层负责向一个或多个数据库中读取或写入数据。通常用来给业务层的业务逻辑处理提供数据。这个层次通常必须包括业务实体模型。

例子阐述:

以一个例子来谈三个层次的作用:

  • 用户访问了某个网站的页面,这个页面上有各种各样的功能(如果只是静态的页面的话,还不算表现层)
  • 用户点击某个按钮,向服务器提交请求(表现层->业务层)
  • 服务器接收到请求,分析请求,调用对应的逻辑处理程序来处理请求(业务层)
  • 如果用户发起的业务请求是一个与数据库相关的业务,对应的逻辑处理程序调用数据库交互逻辑来读取/写入数据(业务层->持久层)
  • 数据库交互逻辑通过程序的配置信息来与数据库进行交互,读取/写入数据后,返回结果。(持久层->业务层)【如果这个数据库交互逻辑处于某个业务处理逻辑当中,那么这时候就不算持久层,每个层次的功能都是独立的。】
  • 业务逻辑处理程序接收到数据库交互逻辑程序返回的数据,进行数据处理,然后返回到用户的界面上。(业务层->表现层)
  • 服务器根据请求将数据显示到网页中,然后将这个网页返回给用户浏览器。(表现层)

注意:

  • 每个层次的职能应该是独立的,否则无法独立成一个层次。

  • 通常来说,表现层不应该存在业务逻辑处理的代码,它通常只用来显示动态数据。


MVC与三层架构的区别

  • MVC与三层架构并不等同,三层架构的三个层次并不与MVC对应
  • 如果要MVC与三层架构做对比的话,MVC就像一个中间件,它囊括了三层架构中业务层的大部分功能,但也涉及表现层(View视图负责数据的显示)和持久层(持久层中的实体类与Model模型,但Model比实体类要多出数据库交互的功能)
  • MVC中Model基本相当于业务层+持久层

MVC框架与三层架构的更多相关文章

  1. MVC模式与三层架构的区别

    之前总是混淆MVC表现模式和三层架构模式,为此记录下. 三层架构和MVC是有明显区别的,MVC应该是展现模式(三个加起来以后才是三层架构中的UI层) 三层架构(3-tier application) ...

  2. 浅析MVC模式与三层架构的区别

    浅析MVC模式与三层架构的区别 三层架构和MVC是有明显区别的,MVC应该是表现模式(三个加起来以后才是三层架构中的UI层).三层架构(3-tier application) 通常意义上的三层架构就是 ...

  3. MVC和普通三层架构的区别

    MVC和普通三层架构的区别 其中这里的模型(Model)和视图(View )是完全区别于三层架构中的模型(Model)和视图(View)的. MVC 1)MVC中的模型(Model)指的是数据模型,用 ...

  4. 浅析MVC模式与三层架构的区别01

    三层架构和MVC是有明显区别的,MVC应该是展现模式(三个加起来以后才是三层架构中的UI层)三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI ...

  5. MVC设计模式与三层架构

    三层架构分别是:表示层(Web层).业务逻辑层(BLL层)和数据访问层(DAL层). (1)表示层负责: a.从用户端收集信息 b.将用户信息发送到业务服务层做处理 c.从业务服务层接收处理结果 d. ...

  6. MVC简介与三层架构

    感谢博客园团队日夜辛苦的付出 感谢阅读我文章的每位读者 1.MVC简介 MVC最早于1978年提出,是软件工程中的一种软件架构模式,这时距离微软在1985年推出Window1.0还有7年之久,当时的M ...

  7. MVC模式与三层架构和表示层

    1.MVC模式     - Model-View-Controller     - 模型-视图-控制器     - Model(模型)         > 模型分为业务模型,和数据模型     ...

  8. MVC 设计模式与三层架构

    一.JavaEE开发模式 什么是开发模式 模式是在开发过程中总结出的"套路",总结出的一套约定俗成的设计模式 JavaEE模式 model1模式 技术组成 :jsp+javaBea ...

  9. 利用General框架进行三层架构开发

    三层架构是企业信息管理系统中一种比较流行的架构方式,如大家所知,三层架构将信息系统分为数据访问层(DAL).业务逻辑层(BLL).界面表示层(UI)三部分,三层架构的好处是根据系统中代码所处的层次将系 ...

随机推荐

  1. 200 行代码使用 C# 实现区块链

    文章原文来自:Code your own blockchain in less than 200 lines of Go!,原始文章是通过 Go 语言来实现自己的区块链的,这里我们参照该文章来使用 C ...

  2. Linux常用命令之网络和关机重启命令

    目录 1.网络命令 一.给指定用户发送信息:write 二.给所有用户发送广播信息:wall 三.测试网络连通性:ping 四.查看和设置网卡信息:ifconfig 五.查看发送电子邮件:mail 六 ...

  3. MySQL索引建立和使用的基本原则

    合理设计和使用索引 在关键字段的索引上,建与不建索引,查询速度相差近100倍.   差的索引和没有索引效果一样.   索引并非越多越好,因为维护索引需要成本.   每个表的索引应在5个以下,应合理利用 ...

  4. 微信分享JS-SDK

    微信JS-SDK,提供给开发者的基于微信内的网页开发工具包 使用微信JS-SDK,网页开发者可借助微信高效地使用拍照.选图.语音.位置等手机系统的能力,同时可以直接使用微信分享.扫一扫.卡券.支付等微 ...

  5. 【详解JavaScript系列】JavaScript之变量

    一  概述 本篇文章将讲解JavaScript中的变量,大致内容归结为: 1.变量定义 包括变量声明和变量初始化 2.变量种类 包括局部变量和全局变量 3.变量链式作用域及访问 二  内容 (一)变量 ...

  6. 5-15 bootcss 之 modal 以及 jquery ui 之datepicker 小记

    最近公司在用bootstrap和Jquery UI做项目,类似与OA的东西前两天碰到点问题,记录一下.希望读者不要在遇到和我一样的问题. 1 datepicker.不知道怎么自己下载的bootcss里 ...

  7. mybatis-generator插件执行报错:Cannot resolve classpath entry

    记录一个小问题 使用了mybatis-generator插件自动生成实体类,DAO,Mapper,在执行时报错.报错信息如下 Failed to execute goal org.mybatis.ge ...

  8. 利用Python测量滴水湖的水面面积

    美丽的滴水湖   美丽的滴水湖坐落在上海的东南角,濒临东海,风景秀丽,安静舒适,是旅游.恋爱的绝佳去处.笔者有幸去过一回,对那儿的风土人情留下了深刻的印象,如果有机会,笔者还会多去几次!   滴水湖是 ...

  9. PHP学习笔记(3)-Zend Studio安装和汉化

    下载 因为FQ也慢,所以还是在百度软件中心下载快一些.地址:http://rj.baidu.com/soft/detail/15423.html?ald 因为下载不是最新版本,虽然因为强迫症FQ在官网 ...

  10. [转]Mysql FROM_UNIXTIME as UTC

    本文转自:https://stackoverflow.com/questions/18276768/mysql-from-unixtime-as-utc You would be better off ...