关于MVC模式(架构模型)与Web 三层模型的区别
在此之前,小弟已经在网上查找了一些相关的文章,但还是有点疑问还没有解决,请大家来帮帮忙
对于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 架构模型 有什么区别???
}
[最优解释]
两种架构都是把
数据显示 , 业务处理 , 底层处理 都变成 松偶合了
都可以把 界面设计人员,做功能的程序员,核心数据处理程序员 分工了
再问一个 同时熟悉 Jsp 跟 Asp.net 的高手:
MVC 跟 Web 三层模型的优点缺点有什么重要的区别吗??
我相信这个区别显然是有很大的区别的,要不然微软 也不会半途出家也来一个 MVC框架
[其他解释]
是不是我学习所参照的例子,确切说是那个javascript mvc 实例的文章,有问题??
[其他解释]
MVC是只是界面的分层V是看见的,C是输入的,这都是三层里UI层的功能,M是模型,当不只是说三层里那个业务模型,而是业务逻辑层,数据访问层,模型的总称。
[其他解释]
.net 技术交流群 互相学习 加下 谢谢
[其他解释]
该回复于2010-08-05 15:51:50被版主删除
[其他解释]
其实都 是为了项目开发更顺利便捷。
[其他解释]
mvc也可以用分层的概念设计
这两者有什么可比性呢?
[其他解释]
呵呵,mvc结构也得应用三层结构的东西呀
比如说
modal+dal+bll+contrller+view
也是不错的结构了,你说这样的话算什么结构呢???
[其他解释]
两个不同的东西 甘本上
三层 是 相互依赖的
M V C 是独立的 各自工作自己的东西
[其他解释]
什么乱七八糟的?
MVC是40多年前为第一个图形界面应用程序所确立的应用程序图形处理模块与其控制和数据部分的分离模式。而所谓三层模式是指整个网络系统模式。这两个没有什么对等的。MVC只不过是在讨论表现层里边的编程模式,顶多在表现层里又划分出三层了。而常说的三层,则不是指MVC中的层概念。
[其他解释]