关于 MVC和三层架构 讨论讨论

_thinkinghunter 2011-12-06 06:34:26
首先说说MVC
MVC 模型层-视图层-控制层 这种架构 实现了前端 后端以及控制层的分离。
优点:分出多层,降低耦合。实现复用。比如一个模型层可以设计多个视图层。

三层架构
业务逻辑层 数据访问层 表现层

也是划分出多层。但是将MVC中的模型层,也就是关于数据的逻辑处理划分为 数据访问层和业务逻辑层。当然,三层架构不是在MVC的基础上划出来的。
相对于MVC,三层架构少了控制层,无法实现表现层和后端模型的灵活控制。相对于三层架构,MVC少了对模型层的进一步划分。业务逻辑层和数据访问层放在在一起。
所以二者首先是不同的,并且都不是完善的。二者结合起来最终由控制层,业务逻辑层,数据访问层,表现层四层。

可以这样理解。MVC解决了前端和后端的控制,在前端,控制,和后端这块降低了耦合度。视图可灵活匹配模型。但是没有将后端的业务逻辑层和数据访问层进行解耦。
三层架构解决了数据访问层,业务逻辑层,表现层的分离。那么这样够了吗?表现层如何和后端进行匹配的呢?(问题1

如果说三层架构没有解决前端和后端的控制,那么前后端代码还是存在耦合的。虽然理论上有表现层。但是这个表现层可能不够独立。会和后端代码耦合。
综上,结合MVC的前后端解耦。加上三层架构的后端数据访问层和业务逻辑层的分离。组合出来的是二者优点结合的。
表现层+控制层+业务层+数据访问层 这样四层的结构。这样充分二者的优点!

我的实践经验不多,完全属于个人推理。欢迎各种拍砖,相互提高!谢谢!!最好是有实际经验的帮助深入分析下!!谢谢!!
...全文
347 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
_thinkinghunter 2013-08-23
  • 打赏
  • 举报
回复
MVC属于对三层架构表现层的拆分。避免业务代码写到界面里。再回复下希望没有误导他人。
由贵瑛理 2011-12-07
  • 打赏
  • 举报
回复
MVC架构开发是需要好好分析研究下了。。。
zgf66702522 2011-12-07
  • 打赏
  • 举报
回复
吐血,MVC是三层架构里表现层用的技术
fashi1000 2011-12-07
  • 打赏
  • 举报
回复
你不是在add的action里直接forward过去的吧 ,看看当前路径
li1037 2011-12-07
  • 打赏
  • 举报
回复
是要好好讨论讨论这个问题了
elalll 2011-12-06
  • 打赏
  • 举报
回复
任何代码放到任何地方都能运行。各种框架就是我们怎么用方便怎么用。个人感觉mvc跟gui的关系比较大
fashi1000 2011-12-06
  • 打赏
  • 举报
回复
很多年前java web开发 jsp + javabean
后来出现了 jsp + servlet + javabean
再后来大伙都用 jsp/freemarker + struts-action + spring-service +dao
分层一直在变,mvc的概念是否也可以做些调整呢
  • 打赏
  • 举报
回复
从现在的应用看来,MVC 很鸡肋,我认为 JBoss Seam 的思想,后来成为 WebBeans 规范的思想很好,应用只划分层为:组件层和视图层。
Beginer09 2011-12-06
  • 打赏
  • 举报
回复
学习,对于MVC有点含糊
艳沐石 2011-12-06
  • 打赏
  • 举报
回复
MVC跟三层结构,我觉得是两种不同的说法,基于的也不是很相同。

MVC强调的是工程整体,模型-视图-控制

三层,我觉得是控制层,业务逻辑层和数据访问层,这是基于后端处理的一个层次结构,是为了让业务控制更加清晰,而出现的这种层次结构。因为如果把很多都写在一起,导致了代码冗余很多,为了很好的维护和代码重用,将一些东西提出放到不同的层次上。这样显得更加清晰。

所以对于三层结构来说,并不是一个很清晰的界限。

以上均是个人观点,我也没有多少经验~~相互交流。
ljd1 2011-12-06
  • 打赏
  • 举报
回复
例 在java web开发中 m(模型)可以用javabean来实现 v(视图)可以由jsp来实现 c(控制)可以有servlet来实现,三者有机结合就形成了经典的mvc三层架构模型
oO临时工Oo 2011-12-06
  • 打赏
  • 举报
回复
按照你的思路去做是完全可以的。

MVC是比较经典的,按你说的,就是把MVC中的M分成业务逻辑和持久层(也就是你说的数据访问层),这样也完全是符合MVC结构的。

我还是第一次听说什么三层架构。表示怀疑

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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