安逸尘惠子同人(虐文):MVC和三层架构的区别,我谈下自己的理解 - .NET技术 / 分析与设计
来源:百度文库 编辑:偶看新闻 时间:2024/10/05 10:54:09
发表下不成熟的看法,
网上转载量非常高的一篇博客,在说三层架构和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还是三层架构,
只要严格遵循起来,系统的扩展性和课维护性都不会很差。
其抱怨人家留下来的系统烂,其实自己的也好不到那去,只不过是自己写的自己思路上清楚点而已。所以感觉以后要严格要求自己,争取写出的代码清晰一点,规范一点。
网上转载量非常高的一篇博客,在说三层架构和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还是三层架构,
只要严格遵循起来,系统的扩展性和课维护性都不会很差。
其抱怨人家留下来的系统烂,其实自己的也好不到那去,只不过是自己写的自己思路上清楚点而已。所以感觉以后要严格要求自己,争取写出的代码清晰一点,规范一点。
二层CS架构和三层CS架构的区别和联系 3天内本人将采纳最佳答案
CS架构和BS架构的区别?
两层架构与三层架构的区别,从优缺点角度说明?
两层架构与三层架构的区别,从优缺点角度说明?
谈谈对MVC和Struts模式的理解
讲述三层架构程式和服务器的结构运原理
三层交换机和路由器的区别?
结合J2EE项目PlantsByWebSphere,谈谈你对MVC的理解?
能不能提供一个三层架构的电子商务系统(C#)
什么是mvc三层构架
两层体系架构与三层体系架构的异同点。
请问软件三层架构是如何架构的,用什么工具开发?
什么是mvc架构
.三层交换机和路由器的区别?为什么不能用三层交换机代替路由器?
大家谈下自己的理解啊
交换到桌面交换机和普通三层交换机的区别?
pentium处理器的P6微架构和NetBurst微架构有什么区别
芯片座架构的区别?
主板架构MicroATX和ATX的区别是什么?
怎样架构自己的网站?
加速集线器架构与加速中心架构两者的区别
哪有规范C#的三层架构示例程序可以下载?
谁能通俗的给我解释一下MVC是什么东西
web 三层架构