一.构架的基本思想

采用MVC构架一个网站时,最好随时随地地将脑袋中切割成三份(M,V,C),这是一个最基本的切割单位,而且也是最容易切割的三个部分,但是在实务上,通常不会这么简单,有时候我们会再多切割成好几块,例如:服务层,数据访问层,数据仓储曾,辅助工具层,等等。

MVC各个部分的责任:Model负责商业逻辑,View负责前段呈现,Controller负责流程控制,这三者之间必须彼此分工合作。其中Model和Controller有时候不太容易区分,但基本区分原则是,Controller只控制程序运行的流程,作为界面(View)和后台逻辑(Model)的沟通桥梁。每个流程中的环节具体的实现逻辑是在Model中实现的。

二.M,V,C三者的关系:

(一)各自任务的分工

(1)Model:只要跟数据和逻辑相关的任务,都应该在Model里完成如:定义数据结构,负责与数据库沟通,从数据库读取数据,将数据写入数据库,运行预存程序,数据格式验证,定义与验证商业逻辑规则,对数据进行各种加工处理。

(2)View:视图,

(3)Controller的责任主要有两个部分:作为界面(View)和后台逻辑(Model)的沟通桥梁(包括)

三.这样分工的好处:

1.降低程序复杂度:当需求变更时,可以依据清楚的责任划分,很容易的定位到正确的地方进行修正。

2.增加分工能力:通过构架规划,将一个很大型的网站项目分成多个相对独立的组,进行设计。

3.让各个组件得意抽象化,也可以减少对象之间的耦合程度和彼此影响程度,同样有利于分模块进行开发。

三.采用MVC构架时需要注意的地方

1.在构架MVC时,要明确一点:没有人可以将软件一次就写对,就如同没有人可以将需求一次讲清楚一样,因为需求不断在变。所以,唯一能做的就是保持架构的弹性与可维护性,保持软件的可测试性,让MVC项目能够应付各种改变,以确保软件的质量在一定范围内。如果你能够为每个程序都写好对应的测试程序,那么也不用担心项目每次的变更所带来的冲击了,因为测试程序就是最佳的后盾。

2.在使用MVC必须舍弃常规Web Forms的哪些东西

(1).ViewState

(2)Asp.net页面追踪机制(Page Trace).

(3)ASP.NET 事件驱动模型。

(4)服务器控件(Server Control)。大部分不能用,但没有用的ViewState的还可以用来作为显示用途。

(5)Default SiteMap Provider.

 

四.Visual Studio中MVC构架各个文件夹的解释

MVC构架思想的更多相关文章

  1. 讨论Android开发中的MVC设计思想

    最近闲着没事,总是想想做点什么.在时间空余之时给大家说说MVC设计思想在Android开发中的运用吧! MVC设计思想在Android开发中一直都是一套比较好的设计思想.很多APP的设计都是使用这套方 ...

  2. spring MVC核心思想

    目录  一.前言二.spring mvc 核心类与接口三.spring mvc 核心流程图 四.spring mvc DispatcherServlet说明 五.spring mvc 父子上下文的说明 ...

  3. 初识mvc分层思想

    首先要清楚的是: mvc是一种设计模式,一种分层思想,没有具体的技术与之对应,无论是js还是java或者其他的技术都可以运用. 既然是分层那么这些层都有哪些职责呢? View层(界面层): 为用户展示 ...

  4. SpringMVC原理&MVC设计思想

    什么是MVC? MVC是一种架构模式 --- 程序分层,分工合作,既相互独立,又协同工作 MVC是一种思考方式 --- 需要将什么信息展示给用户? 如何布局? 调用哪些业务逻辑? MVC流程图如下图所 ...

  5. Unity 背包系统的完整实现(基于MVC框架思想)

    前言: 项目源码上传GitHub:Unity-knapsack 背包系统: 背包系统是游戏中非常重要的元素,几乎每一款游戏都有背包系统,我们使用背包系统可以完成装备栏的数据管理,商店物体的数据管理等等 ...

  6. struts2.1笔记01:MVC框架思想浅层理解

      1. Struts 1是全世界第一个发布的MVC框架: 它由Craig McClanahan在2001年发布,该框架一经推出,就得到了世界上Java Web开发者的拥护,经过长达6年时间的锤炼,S ...

  7. 前端笔记之NodeJS(四)MongoDB数据库&Mongoose&自制接口&MVC架构思想|实战

    一.MongoDB数据库 1.1 NoSQL简介 随着互联网web2.0网站的兴起,传统的SQL数据库(关系数据库)在应付web2.0网站,特别是超大规模和高并发的SNS(social network ...

  8. MVC设计模式思想及简单实现

    一.什么是MVC MVC即Model-View-Controller(模型-视图-控制器)是一种软件设计模式,最早出现在Smalltalk语言中,后被Sun公司推荐为Java EE平台的设计模式. M ...

  9. 软件开发的MVC构架

    MVC:IDE开发环境开发时,无意中使用的软件结构. 转自于wikipedia:http://zh.wikipedia.org/wiki/MVC 软件的层次划分:框架--组件(设计模式)--算法与数据 ...

随机推荐

  1. Qt QDebug :Cannot retrieve debugging output!

    调试Qt程序时用Qdebug类输出调试信息:     qDebug("read My Com"); 这个问题是个小问题,其实跟程序没关系.当你同时开多个Qt程序(Creator编程 ...

  2. S2SH项目框架搭建(完全注解)

    1.引入相关jar包 2.配置Spring配置文件,命名为applicationContext.xml(配置好后放到src目录下) <beans xmlns="http://www.s ...

  3. Java NIO 备忘

    $.backlog:可以把它简单理解为一个 listening socket 的请求连接队列的限制.当队列中的连接请求达到队列限制时,kernel 会拒绝信的连接请求.只有当应用程序通过 accept ...

  4. [一位菜鸟的COCOS-2D编程之路]打飞机中机种敌机和战机损毁时的爆炸效果

    1.第一步,添加爆炸动画 //添加玩家飞机飞行动画 id _playerFlyAction; id _playerBlowupAnimation; //战机爆炸动画 id _enemyBlowupAn ...

  5. [转]Java 动态代理机制分析及扩展

    引言 Java 动态代理机制的出现,使得 Java 开发人员不用手工编写代理类,只要简单地指定一组接口及委托类对象,便能动态地获得代理类.代理类会负责将所有的方法调用分派到委托对象上反射执行,在分派执 ...

  6. Redis实战

    大约一年多前,公司同事开始使用Redis,不清楚是配置,还是版本的问题,当时的Redis经常在使用一段时间后,连接爆满且不释放.印象中,Redis 2.4.8以下的版本由于设计上的主从库同步问题,就会 ...

  7. 【Android动画】之Tween动画 (渐变、缩放、位移、旋转)

    Android 平台提供了两类动画. 一类是Tween动画,就是对场景里的对象不断的进行图像变化来产生动画效果(旋转.平移.放缩和渐变). 第二类就是 Frame动画,即顺序的播放事先做好的图像,与g ...

  8. [016]转--C++拷贝构造函数详解

    一. 什么是拷贝构造函数 首先对于普通类型的对象来说,它们之间的复制是很简单的,例如: int a = 100; int b = a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员 ...

  9. PHP端验证代码、后端验证

    /** * 验证url是否存在 * @param string $url url路径 * @return boolean true:存在,false:不存在 */ public function va ...

  10. JSP的三种类型的元素

    JSP有三种类型的元素:指令元素(directive element).行为元素(action element).和脚本元素(script element). 指令元素用于指定整个JSP页面的相关信息 ...