在此之前,小弟已经在网上查找了一些相关的文章,但还是有点疑问还没有解决,请大家来帮帮忙
对于MVC 的概述这里就不在详细说明了,不过有点提的是
MVC 原本是用于桌面程序的(可以有状态的程序,而不象web 那样无状态),后来现在大家都用在web 上了
如果MVC 是用在有状态的程序里(桌面程序里)的话,我还好理解他们根本的区别:
MVC里有一个Observer的设计,也就是说一个数据模型发生变化,对应注册事件的视图就同步变化,因为web里是没有状态的,所以我就不知道这个Observer模式还有没有作用
MVC层 与 Web 三层模型(我到现在还没有知道这个三层模型在国外标准术语是什么)的区别如下:
为了大家好理解我把部分的东西写成是代码
var MVC = (Model , View , Controler 三层); //MVC 层的定义
var Web = (逻辑层 , 数据层 ,UI 层) = (BLL,DAL,View);//Web三层的定义,其中还少了一层叫Model层
MVC.View = Web.View = (界面层,专门负责把业务数据库以不同的方式显示出来);
MVC.Model = (业务逻辑+数据逻辑);
MVC.Controler = (在MVC.View 与 MVC.Model两者之间作一个中介者,作一个 处理请求/请求处理结果 的转发器 );
Web.View = MVC.View;
Web.DAL = (数据库访问层,负责底层数据物理处理);
Web.BLL = (业务逻辑层,负责概念上的数据逻辑处理,通常由Web.View 来调用发出请求,然后获取结果来显示UI);
Web.Model = (数据结构定义层,负责定义物理数据映射到程序的实际结构) = ORM;
以下是进行判断:
if( MVC.Model==(Web.BLL + Web.DAL) ) { //如果MVC.Model 层是等于 Web三层里的逻辑层 + 数据层的话
//那么 MVC.Controler 跟 Web.BLL怎么那么相似??? 那岂不是MVC.Controler 在web 上是重复了?
//我看过一段用javascript 来实现mvc 的代码
//地址:
http://www.alexatnet.com/content/model-view-controller-mvc-javascript
//里面的代码就是MVC.Controler充当了 Web三层模型里的逻辑层即 Web.BLL
}else{ //如果MVC.Controler 的职责没有重复的话(显然这个条件才成立的,但是也要有依据)
//那么Web 三层模型 跟 MVC 架构模型 有什么区别???
}