`

MVC的理解

 
阅读更多

1. 三层架构与MVC

           三层架构:表现层、业务层、持久层

           MVC是表现层功能页面的组织方式,包括数据,页面控件,页面中的操作。

           解释了为什么说一些js框架声称支持MVC。

 

2. 标准MVC

           从Head First 设计模式一书中了解到,MVC是对多个设计模式的一种组合应用。

           M封装了数据和业务逻辑方法。

           V封装了页面控件,从M中获取数据,初始化控件的值,监听M中数据的变化,更新控件的值。使用了观察者模式。同时V中控件是一个组合过程,使用了组合模式。

           C封装了页面控件的操作,监听控件的事件,进行一些行为处理,行为包括调用M中的业务逻辑方法,修改V中控件的状态。C代表行为,是可以替换的,使用了策略模式。

 

3. CS的MVC与BS的MVC

         CS的MVC

              符合标准MVC的使用

              表现层 <------------------http -----------------> 业务层,持久层

              MVC同处于一个环境中,可以搭建标准MVC的对象依赖关系。

 

         BS的MVC

              不符合标准MVC的使用,是一个适应后的产品

              表现层(浏览器) <-----------------http--------------------> 表现层(服务器),业务层,持久层

              V(html) + C(js)                                                           C(struts) V(jsp)        M

              MVC没有处于同一个环境,不能搭建标准MVC的对象依赖关系,只能有所取舍,或者通过其他途径实现类似的效果。

              封装数据的M没有了,初始化页面的数据直接来源于数据库表(也可以通过session缓存数据对象)。

              V没有监听M中数据的变化,不会根据数据而更新视图(利用session + ajax也可以达到这种效果)。没有使用观察者模式。

              C通过js监听按钮事件发起http请求,struts接收请求,可以调用M的业务逻辑方法,可以返回完整页面或通过ajax更新部分页面。没有使用策略模式。

 

4. 真实数据和克隆数据

           这里讨论一下MVC中M缓存的数据。这个数据是从数据库查询出来的,如果数据库中的数据是真实数据,那么M中封装的数据是克隆数据,这份数据用于支持表现层页面中数据的编辑,如果表现层页面最终保存,则将该数据持久化到数据库中,如果表现层页面最终关掉了,则该临时数据直接丢掉。

           但在BS程序中的M一般没有缓存该临时数据,对数据的查询,更新直接对数据库表,这样就没有刚才的灵活性,导致一些过程数据(可能保存,也可能不保存)被放入数据库表中,如果保存了,就认为是正式数据,如果是关掉了,就认为是垃圾数据,这样就不灵活。当然可以通过session来缓存一份克隆数据是比较好的,这样就和标准MVC中的使用类似了。

分享到:
评论

相关推荐

    自定义mvc理解与增强

    1.获取*.action完整路径 2.获取*.截取完整请求路径,得到请求路径名。 3.根据请求路径获取对应的Action子控制器 。 4.将请求委托action子控制器处理。

    mvc各种理解介绍

    mvc介绍,各种mvc理解的介绍,完成mvc最终含义的介绍。

    MVC笔记理解

    MVC 理解model:访问数据就像我们通常的dal view:显示页面 control:业务逻辑,路由到页面。 model view control简称 mvc model:模型 view:视图 control:控制器

    有关MVC的深入理解的几篇文档

    有关MVC框架的深入理解的几篇文档,很经典哦,是我收集的关于MVC知识的精华呵

    简单的mvc架构实例

    一个mvc的实例,看懂后对mvc理解会清楚很多

    MVC框架的理解

    MVC框架的理解:模型层,页面层,控制层

    MVC应用开发程序

    对初学MVC开发者很有学习、参考...3、每个添加,修改,删除按钮都有几种方法实现,方便开发人员对MVC理解。 4、实现数据表格分页功能。 5、源程序代码简单明了,每个方法都有详细注解,对初学MVC开发人员不可多得代码。

    MVC详细教程,外加一个很经典的MVC小案例,帮助理解

    MVC详细教程 经典的MVC案例 MVC案例 mvc MVC教程 解压缩之后有10M,有两个文件夹一个是MVC经典教程,还有一个是MVC案例

    Spring mvc 注解理解

    让我们更好的了解 spring mvc 注解方面的知识 适合入门

    一个简音的MVC框架,适合初学MVC的人理解

    一个自己编写的MVC小程序,适合初学者学习!

    ASP.NET MVC5

    ASP.NET MVC5 高清完整版,适合新手学习,理解MVC架构

    MVC架构(模式)

    主要包括MVC的设计思想、实现和原理,以及和其他人的理解。 一、MVC设计思想 二、MVC设计模式的实现 三、MVC设计模式的扩展 四、MVC的优点 五、MVC的不足

    mvc模式的贪吃蛇

    mvc模式的贪吃蛇,简单容易理解,可以下来看看

    基于ASP.NET MVC项目实例

    基于ASP.NET MVC框架的学习项目,包含MVC的框架的设计思路,通俗易懂学习MVC框架,需要VS2010及以上版本打开,初学者可以快速理解MVC的构思以及开发。

    自己利用mvc写了个简单的框架,对理解mvc以及sturts有很大的帮助

    为了项目需要,写了个简单的mvc框架,对初学者理解mvc有很大的帮助,同时对学习struts也有很大的帮助

    用MVC模式和jsp实现的具有一些简单功能的小项目。适合初学者理解MVC模式

    用MVC模式和jsp实现的具有一些简单功能的小项目。适合初学者理解MVC模式,还是希望大家能在java这条路上学有所成

    ASP.NET MVC实战

    现在,Microsoft公司也加入了这个社区,ASP.NET MVC框架为应用程序开发人员提供利用成熟开发模式,开发易于理解、易于测试和易于维护的应用程序的新利器。《ASP.NET MVC实战》通过一个已经投产的代码营网站实例,...

    Asp.net Mvc官方源代码

    微软官方Asp.net Mvc源代码,可以深入理解mvc的原理,内部实现

    精通ASP.NET MVC5

    获得对ASP.NET MVC 5体系构架的完整理解 了解第ASP.NET MVC 5的新特性以及如何将这些新特性运用于开发 了解MVC及测试驱动开发的实际运作 充分利用已有的知识快速而方便地将传统的ASP.NET与ASP.NET MVC 5的特性进行...

Global site tag (gtag.js) - Google Analytics