`

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架构模式和ASP.NET MVC项目结构" MVC架构模式是将Web应用程序组件分离的架构结构设计模式,通过分开组件,我们可以更好地控制应用程序的单个部件,从而能够更加轻松地开发、修改和测试这些部件。MVC架构模式...

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

    全方面理解MVC模式不仅包括基本概念,还包括实际应用场景、最佳实践以及其与其他设计模式的对比,如MVVM(Model-View-ViewModel)和MVP(Model-View-Presenter)。了解这些可以帮助开发者更好地选择适合项目的技术栈...

    MVC框架的理解

    ### MVC框架的理解 MVC(Model-View-Controller)架构模式是软件工程中常用的一种设计模式,主要用于简化复杂的用户界面程序开发。它将应用程序分为三个核心部分:模型(Model)、视图(View)和控制器(Controller...

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

    **学习MVC框架**,首先需要理解MVC模式的基本概念,接着通过实践编写Model、View和Controller来建立实际的应用。在"SimulateMVC"中,你可以通过阅读代码了解每个部分是如何协作的,以及如何组织和管理代码以实现MVC...

    MVC应用开发程序

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

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

    学习这个MVC详细教程,你将深入理解如何组织代码,如何设计高效的Web应用,以及如何利用MVC模式来提高开发效率。教程可能包含理论讲解、代码示例和实践项目,一步步引导你掌握MVC的核心概念和实践技巧。 通过阅读...

    mvc 代码 mvc 代码

    **MVC(Model-View-Controller)模式**是软件工程中一种广泛采用的设计模式,尤其在Web...通过深入研究MVC源码,开发者不仅可以掌握MVC模式的实现细节,还能提升对Web应用架构的理解,从而更好地设计和优化自己的项目。

    C++实现简单的MVC框架

    本项目是用C++实现的一个简单的MVC框架,名为MVCDemo,旨在帮助开发者理解MVC设计模式的基础概念。 首先,我们来详细解释MVC的三个组成部分: 1. Model(模型):模型层是应用的核心,它负责管理数据和业务逻辑。...

    中文版小MVC

    `中文版小MVC`是一个专为英语能力有限的开发者设计的简单MVC框架实现,其代码尽可能使用中文注释,以便于理解和学习MVC模式的基本概念。MVC(Model-View-Controller)是一种广泛应用于Web开发的设计模式,它将业务...

    MVC简单例子C#

    **MVC(Model-View-Controller)模式是软件开发中...总结,这个"MVC简单例子C#"涵盖了C#编程语言和MVC设计模式在Web开发中的应用,通过理解和实践这个例子,你可以更好地掌握如何在C#环境下构建高效、可维护的Web应用。

    基于ASP.NET MVC项目实例

    本项目实例是针对初学者设计的,旨在帮助学习者深入理解MVC框架的设计理念和实际应用。 **1. MVC模式** MVC模式是软件工程中的一个设计模式,将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器...

    Android学习之浅谈对MVC模式和MVP模式的理解

    在Android开发领域,理解并应用合适的架构模式对于创建可维护、可扩展的代码至关重要。本文将深入探讨两种常见的设计模式——MVC(Model-View-Controller)和MVP(Model-View-Presenter),并结合实际的TestMVP项目...

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

    描述中提到这个简单的MVC框架是为了项目需求而创建的,并且强调对于初学者理解MVC和学习Struts有较大帮助。Struts是Apache组织开发的一个开源Java Web框架,它也是基于MVC模式,但提供了更多的功能和社区支持,如...

    ASP.NET MVC5

    ASP.NET MVC5是一个基于微软.NET Framework的..."J.T.ASP.NET MVC 5.pdf"这个文件很可能是关于这一主题的详细教程,涵盖这些知识点,对于新手来说是一份宝贵的资源,可以帮助他们快速上手并深入理解ASP.NET MVC5框架。

    经典MVC登录实例代码

    **MVC模式与Servlet、JSP的协同工作** ...以上就是关于"经典MVC登录实例代码"所涉及的核心知识点,希望对你在理解和应用MVC模式、Servlet和JSP方面有所帮助。通过实践这个实例,你可以进一步提升在Web开发领域的技能。

    PureMVC 中文版

    1. **多层架构**:通过将应用划分为Model、View和Controller三层,使得代码结构清晰,易于理解和测试。 2. **命令模式**:使用命令模式来处理业务逻辑,每个命令都是一个独立的类,可以单独测试和复用。 3. **观察者...

    mvc模式的贪吃蛇

    ** MVC 模式详解及其在“贪吃蛇”游戏中的应用 ** MVC(Model-View-Controller)模式是一种常见的软件设计模式,尤其在Web开发...通过理解并熟练运用MVC模式,开发者可以构建出更加健壮、灵活和易于维护的软件系统。

    MVC后台管理系统

    **51Aspx源码必读.txt**:这可能是针对51Aspx网站上发布的ASP.NET相关源码的阅读指南,提供了学习和理解ASP.NET MVC后台管理系统源码的要点和技巧。 **最新Asp.Net源码下载.url**:这个链接指向最新的ASP.NET源码...

Global site tag (gtag.js) - Google Analytics