首先说说MVC
  MVC 模型层-视图层-控制层  这种架构 实现了前端 后端以及控制层的分离。
优点:分出多层,降低耦合。实现复用。比如一个模型层可以设计多个视图层。  三层架构
业务逻辑层  数据访问层   表现层  也是划分出多层。但是将MVC中的模型层,也就是关于数据的逻辑处理划分为 数据访问层和业务逻辑层。当然,三层架构不是在MVC的基础上划出来的。
  相对于MVC,三层架构少了控制层,无法实现表现层和后端模型的灵活控制。相对于三层架构,MVC少了对模型层的进一步划分。业务逻辑层和数据访问层放在在一起。
  所以二者首先是不同的,并且都不是完善的。二者结合起来最终由控制层,业务逻辑层,数据访问层,表现层四层。  可以这样理解。MVC解决了前端和后端的控制,在前端,控制,和后端这块降低了耦合度。视图可灵活匹配模型。但是没有将后端的业务逻辑层和数据访问层进行解耦。
三层架构解决了数据访问层,业务逻辑层,表现层的分离。那么这样够了吗?表现层如何和后端进行匹配的呢?(问题1)  如果说三层架构没有解决前端和后端的控制,那么前后端代码还是存在耦合的。虽然理论上有表现层。但是这个表现层可能不够独立。会和后端代码耦合。
  综上,结合MVC的前后端解耦。加上三层架构的后端数据访问层和业务逻辑层的分离。组合出来的是二者优点结合的。
表现层+控制层+业务层+数据访问层  这样四层的结构。这样充分二者的优点!   我的实践经验不多,完全属于个人推理。欢迎各种拍砖,相互提高!谢谢!!最好是有实际经验的帮助深入分析下!!谢谢!!

解决方案 »

  1.   

    例 在java web开发中 m(模型)可以用javabean来实现 v(视图)可以由jsp来实现 c(控制)可以有servlet来实现,三者有机结合就形成了经典的mvc三层架构模型
      

  2.   

    MVC跟三层结构,我觉得是两种不同的说法,基于的也不是很相同。MVC强调的是工程整体,模型-视图-控制三层,我觉得是控制层,业务逻辑层和数据访问层,这是基于后端处理的一个层次结构,是为了让业务控制更加清晰,而出现的这种层次结构。因为如果把很多都写在一起,导致了代码冗余很多,为了很好的维护和代码重用,将一些东西提出放到不同的层次上。这样显得更加清晰。所以对于三层结构来说,并不是一个很清晰的界限。以上均是个人观点,我也没有多少经验~~相互交流。
      

  3.   

    从现在的应用看来,MVC 很鸡肋,我认为 JBoss Seam 的思想,后来成为 WebBeans 规范的思想很好,应用只划分层为:组件层和视图层。
      

  4.   

    很多年前java web开发  jsp + javabean
    后来出现了 jsp + servlet + javabean 
    再后来大伙都用  jsp/freeer + struts-action + spring-service +dao 
    分层一直在变,mvc的概念是否也可以做些调整呢
      

  5.   

    任何代码放到任何地方都能运行。各种框架就是我们怎么用方便怎么用。个人感觉mvc跟gui的关系比较大
      

  6.   

    你不是在add的action里直接forward过去的吧  ,看看当前路径
      

  7.   

    吐血,MVC是三层架构里表现层用的技术
      

  8.   

    MVC架构开发是需要好好分析研究下了
      

  9.   

    MVC属于对三层架构表现层的拆分。避免业务代码写到界面里。再回复下希望没有误导他人。