MVC和三层架构的区别,我谈下自己的理解

x_4653 2010-09-01 05:08:35
加精
发表下不成熟的看法,

网上转载量非常高的一篇博客,在说三层架构和MVC的时候,

有一句话是这样说的,“中国社会制度与美国人生活方式有什么区别”

好多人说这个比喻好,个人感觉这个比喻很不太恰当

首先说三层架构:
UI(.aspx)---------> BLL(业务处理)------> DAL(数据处理)----> 永久存储(数据库)

MVC:
MVC(Model View Controller)模型-视图-控制器


很明显都是从整体上“策划”一个web项目的实现逻辑

共同点:三层架构的UI层相当于MVC中的View层,作为视图,再说白一点,都是页面

区别:BLL+DAL相当于MVC中的Model层, Model层实现系统中的业务逻辑,当然也包含了数据访问的逻辑

三层”中典型的Model层是已实体类构成的,而MVC里,Model则是由业务逻辑与访问数据组成的,

Model层又分为不同的层(个人认为就是三层架构的DAL+BLL),它的分层也是为了结构清晰和低耦合,

区别比较大的就是三层架构中没有Control层,而是由单个页面上的控件的事件处理页面与业务逻辑之间

,而MVC中control层是作为联系视图层和Model的纽带,使得整个项目的结构更加清晰,降低了耦合性。


举例说明这两种方法不同的实现思路:A在上海的浦东区逛街,有人要抢劫他,打110报警了,B在闵行区也被劫持,他也打110报警了,他们打110的时候,接电话的是上海市公安局总部指挥中心,对于A,来解救他是浦东分局的警察,对于B,解救他的是闵行分局的警察,对于AB来说,他们不需要关心到底是谁来解救他的,他们只管打110报警(类似于页面数据由action提交到控制器),由110指挥中心确定他的位置然后派出具体的地方警局去营救(控制器根据需求调用model层去完成对应的数据处理)。而三层架构在这个过程中就像A或B被劫持了,他们直接找到当地警(调用BLL层方法)的警察来处理,


不想拿出一堆大概念吓人,本来就不太难理解的东西,别搞的很神奇,

也不是说哪个好那个不好,都是解决问题的不同实现思路,三层架构和MVC并

没有传说中的那样没有任何关系,至于.net的MVC还没有研究过。


这些东西都是源于接手的破项目,不太规范的架构和编码看的我很难受,不管MVC还是三层架构,

只要严格遵循起来,系统的扩展性和课维护性都不会很差。

其抱怨人家留下来的系统烂,其实自己的也好不到那去,只不过是自己写的自己思路上清楚点而已。所以感觉以后要严格要求自己,争取写出的代码清晰一点,规范一点。
...全文
13245 191 打赏 收藏 转发到动态 举报
写回复
用AI写文章
191 条回复
切换为时间正序
请发表友善的回复…
发表回复
fang820 2011-12-17
  • 打赏
  • 举报
回复
如何运用MVC框架
麦当苍穹 2011-08-30
  • 打赏
  • 举报
回复
看完这些帖子,哥晕了……
sy1987112038 2011-08-09
  • 打赏
  • 举报
回复
学习了
War3_Fan 2011-05-31
  • 打赏
  • 举报
回复
受教了啊
justin_b02000 2011-05-29
  • 打赏
  • 举报
回复
ding a
冬你个冬 2011-05-25
  • 打赏
  • 举报
回复
MVC 和三层架构都不是一个东西 好不好。一个是页面层的,一个是程序架构。
wangjingyong0305 2011-05-19
  • 打赏
  • 举报
回复
我理解的MVC即三层架构。。。。
huanyingzhanxian 2011-05-18
  • 打赏
  • 举报
回复
拉几个垃圾两个
_Rainbow 2011-05-18
  • 打赏
  • 举报
回复
正在发展。
woshichiren 2011-05-18
  • 打赏
  • 举报
回复
学php的路过,mvc是设计模式,和框架不同吧。。但是有的框架就用了mvc的思想。
卡卡Gemini 2011-05-18
  • 打赏
  • 举报
回复
大多数都是扯淡的,有多少人能真正搞出个有架构的东西来?
DeathSteps 2011-05-17
  • 打赏
  • 举报
回复
还是觉得MVC好 !
answerwyi 2011-05-17
  • 打赏
  • 举报
回复
我一直认为这2个东西 从基层来讲 是不能混合而谈的
zengdj2008 2011-05-17
  • 打赏
  • 举报
回复
讨论得好,学习了
小明aa 2011-05-17
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wuyq11 的回复:]
mvc只是表现模式,三层才是真正架构,
软件架构,通过接口实现编程
[/Quote]
同意
TTNice 2011-05-16
  • 打赏
  • 举报
回复
每天一回复,5点可用积分!!!
zhegebao 2011-05-16
  • 打赏
  • 举报
回复
比喻总是这样,更多的时候不那么贴切,我们需要注意的仅是理解他在比喻什么就够了。诸葛亮都说不要“引喻失义”呢,呵呵
黄小楼 2011-05-16
  • 打赏
  • 举报
回复
看了16,那家伙的发言。好明显的一个微软的狂热者啊。。。
冷笑一声。拿分走人!
lmllouk 2011-05-16
  • 打赏
  • 举报
回复
mvc和三层架构是共存的
zlcwca 2011-05-16
  • 打赏
  • 举报
回复
不太懂,参考一下
加载更多回复(171)

13,190

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 分析与设计
社区管理员
  • 分析与设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧