文档章节

什么是 MVC 模式?

郭乐乐
 郭乐乐
发布于 2016/08/10 10:36
字数 776
阅读 2
收藏 0

MVC(Model-View-Controller,模型—视图—控制器模式)用于表示一种软件架构模式。它把软件系统分为三个基本部分:模型(Model),视图(View)和控制器(Controller)。

模型—视图—控制器模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。除此之外此模式通过对复杂度的简化使程序结构更加直观。软件系统通过对自身基本部份分离的同时也赋予了各个基本部分应有的功能。专业人员可以通过自身的专长分组:

·         控制器 – 程序员编写程序应有的功能,主要是实现程序逻辑控制(实现算法等等)

·         视图 – 界面设计人员进行图形界面设计,即客户端展现的页面效果

·         模型 – 程序对数据的控制管理

M:就是数据库        V:相当于前台页面     C:相当于后台
只不过他们都相对独立.

模型(Model)“数据模型” (Model)用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。“模型”有对数据直接访问的权利,例如对数据库的访问。“模型”不依赖“视图”和“控制器”,也就是说,模型不关心它会被如何显示或是如何被操作。但是模型中数据的变化一般会通过一种刷新机制被公布。为了实现这种机制,那些用于监视此模型的视图必须事先在此模型上注册,从而,视图可以了解在数据模型上发生的改变。

视图(View) 视图层能够实现数据有目的的显示(理论上,这不是必需的)。在视图中一般没有程序上的逻辑。为了实现视图上的刷新功能,视图需要访问它监视的数据模型(Model),因此应该事先在被它监视的数据那里注册。

控制器(Controller) 控制器起到不同层面间的组织作用,用于控制应用程序的流程。它处理事件并作出响应。“事件”包括用户的行为和数据模型上的改变。

PHP 一直缺乏一个良好的、功能完善的模型-视图-控制器(Model-View-Controller,MVC)框架。MVC 框架允许程序员将其代码组织为三个不同的功能区:

* 模型 包含与您的数据库和其他数据结构相关的所有代码。如果您具有一个名为 pages 的表,则您具有一个模型,其中具有用于从表中选择、创建、更新和删除记录的函数。
* 视图 包含所有显示和 UI 元素 — JavaScript 代码、Cascading Style Sheets (CSS)、HTML 甚至 PHP。
* 控制器 将一切联系在一起。控制器中的每个函数表示一个目的地或路线。主要体现在逻辑控制.

No related posts.

© 著作权归作者所有

共有 人打赏支持
郭乐乐
粉丝 0
博文 4
码字总数 1229
作品 0
昌平
私信 提问
简易MVC框架--Lanp

Lanp是什么 Lanp 是基于PHP实现的简易MVC框架.只实现MVC工作模式,以及扩展入口。可以方便的扩展 第三方开源代码。 Lanp不是什么 Lanp 并不是一套齐全的、功能强大的框架。不包括很多诸如 AC...

lanyanguang
2011/06/01
1K
0
什么是 HMVC

HMVC模式即Hierarchical-Model-View-Controller模式,也可以叫做Layered MVC.HMVC模式把客户端应用程序分解为有层次的父子关系的MVC。反复应用这个模式,形成结构化的客户端架构。如图: 一...

小编辑
2011/07/12
1K
3
带着问题学 Spring MVC 源码: 一、概述

摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! 简单就好,生活可以很德国 Q:什么是 Spring MVC ? ※ Spring MVC 是 Spring Web 的一个重要模块。Spring 支持...

泥沙砖瓦浆木匠
2016/10/23
72
0
《android-MVP模式的困惑》

什么是MVP模式呢?我的理解就是老的MVC架构模式的一种延伸,能体现一种面向接口编程的思想。之所以会有MVP,是因为MVC中,C即Controllor对应于Activity或者Fragment。他们负责的东西太多了。...

吕檀溪
2016/04/18
94
2
MVC框架理解

我们先来看看什么是MVC? 全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业...

AngerCow
2017/12/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

缓存穿透,缓存雪崩的四种解决方案

前言 设计一个缓存系统,不得不要考虑的问题就是:缓存穿透、缓存击穿与失效时的雪崩效应。 缓存穿透 缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑...

小致dad
28分钟前
2
0
PHP 文字生成透明图片之路

摘要:在现在的开发中会经常运用到生成图片的功能,常用的验证码生成等。PHP语言生成图片需要用到GD2功能模块,所以基本的图片,图形处理都是没什么压力滴。 准备: 1、打开GD2模块,在php.i...

昙花一现
29分钟前
0
0
impala系列: 基本命令和jdbc连接

--======================= 使用impala-shell 登录 --======================= impala-shell --auth_creds_ok_in_clear -l -i ip_address -u user_name --======================= JDBC dri......

hblt-j
29分钟前
1
0
CSS实例详解:Flex布局

本文由云+社区发表 本文将通过三个简单的实例,实际应用上篇文章的基础理论知识,展示下Flex布局是如何解决CSS布局问题。 一.垂直居中 这里同时用非flex布局和flex布局两种方式来实现,可以...

腾讯云加社区
36分钟前
6
0
安装全局webpack

https://www.jianshu.com/p/119a825d8bba npm ls webpack 和npm ls webpack -g 查看本地和全局版本 npm install webpack@1.15.0 -g 全局 然后到项目里面 npm install npm init npm install w......

lsy999
48分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部