深入理解MVC模式
一,什么是MVC模式
该模式是一种软件设计典范,他把软件系统划分为三个基本部分:模型层(Model)、视图层(View)、控制器(Controller)
*Model(模型)表示应用程序核心(比如数据库记录列表)
*View(视图)显示数据(数据库记录)
*Controller(控制器)处理输入(写入数据库记录)
Model(模型)是应用程序中用于处理应用程序数据逻辑的部分,通常模型对象负责在数据库中存取数据
View(视图)是应用程序中处理数据显示的部分,通常视图是依据模型数据创建的
Controller(控制器)是应用程序中处理用户交互的部分,通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据
二,MVC模式的目的
第一,其目的是实现程序的动态设计,使后续程序的修改和扩展简化,并且能够使程序的某一部份的重复利用成为可能
第二,有助于管理复杂的应用程序,我们可以在一个时间专门关注一个方面,同事也让应用程序的测试更加容易
第三,简化了分组开发,不同的人员可同时开发视图、控制器逻辑、模型逻辑,加快了开发速度
三、MVC工作原理图


注:什么是Javabean?
JavaBean:它是一个简单的Java类。这个类中拥有get或set方法即可,但要求这个类必须有一个公开的空参数的构造函数。并拥有一些简单的逻辑参与。但是在实际应用中,经常只需要类中添加get或set方法的简单Java类。在开发中经常把这样的类称为JavaBean对象或者实体类对象。这样的类开发中经常书写在domain或者beans包下。举例如下:

public class User {
private String id;
private String username;
private String password;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
四,MVC模式的优点
第一,开发人员可以只关注三层中的其中的某一层
第二,可以很容易的用新的实现来替换原有层次的实现,可维护性提高了
第三,可以降低层与层之间的依赖,耦合性降低了
第四,有利于标准化和软件工程化管理
第五,利于各层逻辑的复用,重用性提高了
五,MVC模式的缺点
第一,增加了系统结构和实现的复杂性
对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。
第二,不适合小型或者中等规模的应用程序
花费大量时间将MVC应用到规模并不是很大的应用程序通常会得不偿失
第三,视图与控制器连接的过于紧密
视图与控制器是相互分离,但却是联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用。
第四,视图对模型数据的低效率访问
依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能。
深入理解MVC模式的更多相关文章
- ASP.NET MVC 理解MVC模式
ASP.NET MVC 理解MVC模式 PS:MVC出来很久了,工作上一直没机会用,所以我也没去学.出于兴趣,工作之余我将展开对MVC的深入学习,通过博文来记录所学所得,并希望能得到各位园友的斧正. ...
- [ASP.NET MVC 小牛之路]01 - 理解MVC模式
本人博客已转移至:http://www.exblr.com/liam PS:MVC出来很久了,工作上一直没机会用.出于兴趣,工作之余我将展开对MVC的深入学习,通过博文来记录所学所得,并希望能得到各 ...
- 理解MVC模式
理解一般意义上的MVC模式 MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为以下三个基本部分: 模型(Model):模型用于封装与应用程序的业务逻 ...
- [概念理解] MVC模式和C++的实现
[转]学习可以是一件很快乐的事,特别是当你发现以前所学的点点滴滴慢慢地能够串起来或者变成了一个环,这种感觉真好.这篇文章就这么来的. 从MVC架构开始说起吧.这两天系统了解了一下MVC架构的内容,主要 ...
- ASP.NET MVC:01理解MVC模式
ASP.NET MVC是ASP.NET Web应用程序框架,以MVC模式为基础. MVC:Model View Controller 模型-视图-控制器Model(模型):负责对数据库的存取View( ...
- 【ASP.NET MVC 学习笔记】- 01 理解MVC模式
本文参考:http://www.cnblogs.com/willick/p/3195560.html 1.MVC模式是软件系统的一种架构模式,它将软件分为三大模块: 模型(Model):封装业务逻辑以 ...
- Pro ASP.NET MVC –第三章 MVC模式
在第七章,我们将创建一个更复杂的ASP.NET MVC示例,但在那之前,我们会深入ASP.NET MVC框架的细节:我们希望你能熟悉MVC设计模式,并且考虑为什么这样设计.在本章,我们将讨论下列内容 ...
- [转载]WIKI MVC模式
MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Controller). MVC模式最 ...
- MVC 模式——第3章
在深入到 ASP.NET MVC 框架的细节之间,最好熟悉 MVC 的设计模式及其背后的思想.良好地理解 MVC 背后的内容,有助于在阅读本书的过程中将该框架的特性放到相关的情境之中. 3.2 理解 ...
随机推荐
- python 正则
\s :空白符;\S :非空白符;[\s\S] :任意字符;[\s\S]* :0个到多个任意字符;[\s\S]*? : 0个字符,匹配任何字符前的位置; \d:数字; \B:非数字 ; \w:匹 ...
- SpringMVC @RequestBody接收Json对象字符串
其实 @RequestBody接收的是一个Json对象的字符串,而不是一个Json对象.然而在ajax请求往往传的都是Json对象,后来发现用 JSON.stringify(data)的方式就能将对象 ...
- 【OpenJudge 1665】完美覆盖
http://noi.openjudge.cn/ch0405/1665/?lang=zh_CN 状压水题,手动转移 #include<cstdio> #include<cstring ...
- MFC用户自定义消息
之前做过佳能相机和位移平台的额二次开发,当时遇到一个棘手的问题,就是位移平台如何知道相机已经拍完照了,或者相机如何知道位移平台已经运行到指定位置,当时为了方便采用了定时器来定时检测位移平台的位置,结果 ...
- LNMP搭建(yum)
CentOS官方镜像不提供nginx,http://nginx.orghttp://nginx.org/en/linux_packages.html#stable yum install nginx ...
- 【UOJ#67】新年的毒瘤 Tarjan 割点
#67. 新年的毒瘤 UOJ直接黏贴会炸... 还是戳这里吧: http://uoj.ac/problem/67#tab-statement Solution 看到这题的标签就进来看了一眼. 想 ...
- Java Web的传值汇总(含JavaBean)
前言: 其实JavaBean就像asp.net MVC上的Model传值一样.
- Select Top在七种数据库中的使用方法(包含mysql)
1. Oracle数据库 SELECT * FROM TABLE1 WHERE ROWNUM<=N 2. Infomix数据库 SELECT FIRST N * FROM TABLE1 3. D ...
- LogStash配置、使用(三)
LogStash配置 官方文档:https://www.elastic.co/guide/en/logstash/current/index.html 查看yum安装路径 rpm -ql logsta ...
- Google 地图 API V3 之事件
Google官方教程: Google 地图 API V3 使用入门 Google 地图 API V3 针对移动设备进行开发 Google 地图 API V3 之事件 Google 地图 API V3 ...