`
webcode
  • 浏览: 5911254 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

三层架构与MVC

 
阅读更多
    我们平时总是将三层架构与MVC混为一谈,殊不知它俩并不是一个概念。下面我来为大家揭晓我所知道的一些真相。

首先,它俩根本不是一个概念。

    
    三层架构是一个分层式的软件体系架构设计,它可适用于任何一个项目。
    MVC是一个设计模式,它是根据项目的具体需求来决定是否适用于该项目。
    那么架构跟设计模式有什么区别呢?
    我们从接手一个项目开始,首先,我们需要进行架构设计,一般我们采用的就是分层式的架构设计,即我们的三层架构。
    然后,在确定了架构以后,我们再根据项目的具体需求去考虑是否需要应用一些设计模式,比如是否应用我们的MVC模式,抽象工厂模式等等。(在这里我们看出,MVC与三层架构不是一个等级的,而与抽象工厂等设计模式才是一路的)
    最后,确定了模式以后,就是我们的一些具体的实现了。(当然一个项目不仅仅考虑这些问题,我只是为了说明两者的区别,将其他问题已省略)
其次,它俩划分的层次不同。
    三层架构将整个项目划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。
    MVC即Model(模型),View(视图),Controller(控制)。
    下面看一下他俩的区别与联系:
    通过这个图我们可以知道,我们平常所说的V是UI,C是BLL,M是DAL的观点是错误的。
而我们通常所见到的MVC一般也都是在应用三层架构的基础上,即将Model层再进行分层。而如果Model不再进行划分的话,那么使用MVC的意义也就不大了。
 
然后,它俩的目的着重点不同。
    三层架构的目的着重点是“高内聚,低耦合”,即解耦。
    MVC的目的则是实现Web系统的职能分工,即职责划分。
    其实职责划分也是解耦,但是三层侧重的是整体的一个解耦,而MVC侧重的是web系统的解耦,即侧重jsp和Servlet的一个解耦。
最后,为何我们会将其混为一谈?
    既然两者有这么多的不同,我们为什么还总是将其混淆呢,下面我列举了几个我们常常将其混为一谈的几个原因:
    1.二者都是“三层”。
    这个原因是最容易迷惑我们初学者的,一个是UI,BLL,DAL,一个是View,Controller,Model,不都是三层吗?
    虽然都是“三层”(不一定是真的三层,还可以是多层),但是它们的划分的不一样。大家可从上面的图中看出不同。
    2.MVC总是伴随着三层架构
    这个就是我在前面一再强调的,我们一般是在考虑使用(也可以不使用)了三层架构的基础上再根据具体需求决定是否需要使用MVC,于是我们常说的MVC中总是伴随着三层架构,所以大家总是会认为MVC就是三层架构,三层架构就是MVC,殊不知,它们二者是一起出现的。
    3.都是在分层,即都是在解耦。
前面说它们目的的时候也说了,虽然它们的侧重点不同,但是它们的总体目的是一样的,都是为了解耦,对于初学者而言,是不知道这两个侧重点有何不同的。
    大家往往对它们的联系知道很多,不然也不会混为一谈,但是对它们的区别却知道较少,希望我上面讲解的它们两者之间的区别可以让大家对它们有些了解,如有写的不妥的地方,请指教。




如果要将三层和MVC对应的话,应该如上图中所说:
MVC:
M:即javabean和ejb(包括service层,dao层,bean层,也就是java类都是M层)
V:即jsp
C:即Servlet(有些b/s中没有servlet,如Model1)
对应的三层:
UI:即jsp和servlet
BLL:即service层
DAL:即dao层和bean层

分享到:
评论

相关推荐

    三层架构与MVC.pdf

    三层架构与MVC.pdf

    三层结构与MVC

    还在纠结三层结构和MVC的区别吗,本文档详细介绍了三层结构与MVC的区别和联系,让你面试不在纠结

    UML图设计模式、三层架构、MVC.EAP

    UML图设计模式、三层架构、MVC.EAP

    ASP.NET MVC 三层架构与mvc实例

    一个MVC开发模式和三层架构相结合的asp.net bbs实例,数据库是sql。

    MVC三层架构

    MVC三层架构基础介绍简单来说,Design Patten 就是一个常用的方案。 在我们的开发过程中,经常会遇到一些相同或者相近的问题,每次我们都会去寻找一个新的解决方法,为了节省时间提高效率,我们提供一些能够解决这些...

    C#三层架构的MVC项目源码

    本程序一个基于三层架构的MVC模式应用的完整示例项目源码,基于Asp.net 3.5开发, 结构更简洁,提供更多有效的示例源码参考。 方便用户更好的理解和使用该架构进行开发,配合动软.Net代码生成器,可以使开发效率...

    AMX三层架构(MVC)家庭财务管理系统源码

    AMX三层架构(MVC)家庭财务管理系统源码 源码描述: 家庭财务管理系统: 典型的MVC三层架构编写,代码层次清晰,是学习三层架构以及工厂模式,反射的轻量级DEMO学习实例。 主要功能包含: 1、财务项目管理、家庭...

    三层架构和MVC模式区别

    三层架构和MVC模式区别

    MVC 三层架构示例

    MVC 三层架构示例 实例 .NET C# MVC 三层架构示例 MVC 三层架构示例 MVC 三层架构示例

    三层架构和MVC的区别和联系

    简单地解释了什么是三层架构,什么是MVC,用图解的方式描述了二者的区别和联系

    MVC与三层架构

    MVC与三层架构的区别以及三层架构和mvc的搭建过程

    MVC模式与三层架构区别

    清楚透彻地为你解答什么是mvc模式。三层架构,区别MVC与三层架构区别。 更好地运用MVC

    一个三层架构的MVC代码

    一个三层架构的MVC代码,资料是从网上看的,自己调试出来的。

    asp.net MVC三层架构

    Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。 通常模型对象负责在数据库中存取数据。 View(视图)是应用程序中处理数据显示的部分。...这个适合刚接触三层架构的来学习,比较简单。

    三层架构+MVC+Linq to SQL 入门实例,

    三层架构+MVC+Linq to SQL 入门实例 本程序主要通过一个产品的添加、修改及用户注册登录等来演示MVC的使用,主要针对 MVC和三层架构入门人员 数据实现了列表并分页 App_Data下为Sql2005数据库,采用的是|Data...

    三层架构+MVC+Linq to SQL 实例

    三层架构+MVC+Linq to SQL 实例 本程序主要通过一个产品的添加、修改及用户注册登录等来演示MVC的使用,主要针对 MVC和三层架构入门人员 数据实现了列表并分页

    三层架构+MVC+Linq to SQL 入门实例.rar

    三层架构+MVC+Linq to SQL 入门实例.rar VS2010

    MVC+三层架构+EF的增删改查操作(连接数据库的).rar

    一个MVC+三层架构+EF的增删改查操作(连接数据库的)的demo可以借鉴学习一下mvc+EF的增删改查操作.主要方便自己以后用的时候来看一下复习,温故而知新。

    mvc三层架构应用案例简单代码

    mvc三层架构应用案例简单代码 详见其中brand-demo 技术:mybatis+maven+mysql+JSP+HTML+servlet+JS

Global site tag (gtag.js) - Google Analytics