一,什么是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模式的更多相关文章

  1. ASP.NET MVC 理解MVC模式

    ASP.NET MVC 理解MVC模式 PS:MVC出来很久了,工作上一直没机会用,所以我也没去学.出于兴趣,工作之余我将展开对MVC的深入学习,通过博文来记录所学所得,并希望能得到各位园友的斧正. ...

  2. [ASP.NET MVC 小牛之路]01 - 理解MVC模式

    本人博客已转移至:http://www.exblr.com/liam  PS:MVC出来很久了,工作上一直没机会用.出于兴趣,工作之余我将展开对MVC的深入学习,通过博文来记录所学所得,并希望能得到各 ...

  3. 理解MVC模式

    理解一般意义上的MVC模式 MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为以下三个基本部分: 模型(Model):模型用于封装与应用程序的业务逻 ...

  4. [概念理解] MVC模式和C++的实现

    [转]学习可以是一件很快乐的事,特别是当你发现以前所学的点点滴滴慢慢地能够串起来或者变成了一个环,这种感觉真好.这篇文章就这么来的. 从MVC架构开始说起吧.这两天系统了解了一下MVC架构的内容,主要 ...

  5. ASP.NET MVC:01理解MVC模式

    ASP.NET MVC是ASP.NET Web应用程序框架,以MVC模式为基础. MVC:Model View Controller 模型-视图-控制器Model(模型):负责对数据库的存取View( ...

  6. 【ASP.NET MVC 学习笔记】- 01 理解MVC模式

    本文参考:http://www.cnblogs.com/willick/p/3195560.html 1.MVC模式是软件系统的一种架构模式,它将软件分为三大模块: 模型(Model):封装业务逻辑以 ...

  7. Pro ASP.NET MVC –第三章 MVC模式

    在第七章,我们将创建一个更复杂的ASP.NET MVC示例,但在那之前,我们会深入ASP.NET MVC框架的细节:我们希望你能熟悉MVC设计模式,并且考虑为什么这样设计.在本章,我们将讨论下列内容 ...

  8. [转载]WIKI MVC模式

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

  9. MVC 模式——第3章

    在深入到 ASP.NET MVC 框架的细节之间,最好熟悉 MVC 的设计模式及其背后的思想.良好地理解 MVC 背后的内容,有助于在阅读本书的过程中将该框架的特性放到相关的情境之中. 3.2 理解 ...

随机推荐

  1. 软件工程(FZU2015)赛季得分榜,第四回合

    目录 第一回合 第二回合 第三回合 第四回合 第五回合 第6回合 第7回合 第8回合 第9回合 第10回合 第11回合 积分规则 积分制: 作业为10分制,练习为3分制:alpha30分: 团队项目分 ...

  2. 扩展htmlhelper.DropDownListFor 支持list数据源和option增加属性

    mvc自带的DropDownListFor数据源必须是IEnumerable<SelectListItem>.并且option不支持增加自定义属性.在使用bootstrap-select组 ...

  3. 亿级 Web 系统的容错性建设实践

    一. 重试机制 最容易也最简单被人想到的容错方式,当然就是“失败重试”,总而言之,简单粗暴!简单是指它的实现通常很简单,粗暴则是指使用不当,很可能会带来系统“雪崩”的风险,因为重试意味着对后端服务的双 ...

  4. BZOJ1491: [NOI2007]社交网络

    传送门 最短路计数问题.因为数据量非常小($N \leq 100$),所以Floyd随便搞搞就行了. $f[i][j]$表示路径长度,$g[i][j]$表示最短路方案数. 先跑一遍裸的Floyd,然后 ...

  5. android md5加密与rsa加解密实现代码

    import java.io.UnsupportedEncodingException;import java.security.MessageDigest;import java.security. ...

  6. WPF面试准备

    1.wpf中有两类模板,控件模板controltemplate和datatemplate都派生自Frameworktemplate. 总共有三大模板 ControlTemplate,ItemsPane ...

  7. C#环境

  8. Solve

    /// <summary> /// Solves this instance. /// </summary> /// <returns>IFeatureClass. ...

  9. nginx 和 IIS 实现负载均衡

    Nginx的作用和优点,这里不必多说,今天主要是nginx负载均衡实验,把做的步骤记录下来,作为一个学习笔记吧,也可以给大家做下参考. 1.Nginx安装 1.下载地址:http://nginx.or ...

  10. 苹果手机IOS中div contenteditable=true 仿文本域无法输入编辑

    问题: 在苹果手机IOS中 contenteditable="true" 做文本域输入,点击可以弹出键盘但是无法输入,安卓都正常. 经测试后,记得加一个样式 -webkit-use ...