`
xiaoyaocao
  • 浏览: 276358 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

MVC与三层架构区别

 
阅读更多
    本文转自赵丹丹的专栏《三层架构与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模式与三层架构区别详解 #### 一、引言 在软件开发过程中,合理的设计模式和架构能够显著提升系统的可维护性和扩展性。本文旨在深入解析MVC(Model-View-Controller)模式与三层架构(3-tier architecture...

    MVC与三层架构

    描述:“MVC与三层架构的区别以及三层架构和MVC的搭建过程” 在软件开发领域,MVC(Model-View-Controller)架构模式和三层架构(UI-BLL-DAL)是两种广泛采用的设计模式,它们分别在不同的应用场景下展现出了各自的...

    MVC三层架构

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

    基于MVC 加三层架构 EF数据框架 招聘网

    《基于MVC与三层架构的EF数据框架:构建招聘网站》 在当今信息化社会,招聘网站已经成为企业和求职者沟通的重要桥梁。本项目“基于MVC加三层架构的EF数据框架招聘网”旨在模拟拉钩网的功能,提供发布、浏览简历,...

    基于mvc的三层架构例子

    **基于MVC的三层架构详解** MVC(Model-View-Controller)模式是一种常见的软件设计模式,广泛应用于Web开发中,以实现业务逻辑、数据处理和用户界面的分离。在这个三层架构的例子中,我们将深入探讨每一层的作用...

    EF+MVC+三层(MVC +三层架构+EF对数据库对数据库进行增删改查小案例).zip

    在本项目中,"EF+MVC+三层(MVC +三层架构+EF对数据库对数据库进行增删改查小案例).zip"是一个综合性的示例,它演示了如何利用Entity Framework(EF)、Model-View-Controller(MVC)架构以及三层架构来实现对...

    基于ASP.NET MVC的三层架构博客网站系统源码

    资源名:基于ASP.NET MVC的三层架构博客网站系统源码 资源类型:程序源代码 源码说明: 使用ASP.NET写的三层架构博客系统 带SEO优化 完整代码 适合学习使用 适合人群:新手及有一定经验的开发人员

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

    在提供的示例中,"MVC+三层架构+EF的增删改查操作(连接数据库的)"是一个实际的应用程序演示,它结合了MVC模式和三层架构,用于展示如何使用ASP.NET MVC、三层架构和Entity Framework进行数据库操作。这个demo可能...

    C#本科期末大作业MVC三层架构亮灯的仓库管理系统源码.zip

    C#本科期末大作业MVC三层架构亮灯的仓库管理系统源码。MVC+MYSQL+EasyuiC#本科期末大作业MVC三层架构亮灯的仓库管理系统源码。MVC+MYSQL+EasyuiC#本科期末大作业MVC三层架构亮灯的仓库管理系统源码。MVC+MYSQL+...

    MVC 三层架构示例

    **MVC 三层架构示例** 在软件开发中,MVC(Model-View-Controller)模式是一种广泛应用的设计模式,尤其在Web开发领域。MVC架构将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller),...

    三层架构和MVC模式区别

    本文旨在深入解析三层架构与MVC模式的区别,帮助开发者更好地理解和运用这两种模式。 ### 三层架构概述 三层架构,也被称为n-tier架构,是一种将应用程序分为三个独立部分的设计模式,旨在提高代码的可重用性、可...

    基于ASP.NET MVC3与三层架构的电子商城源码2012929

    基于ASP.NET MVC3与三层架构的电子商城源码 功能介绍: 本代码完全基于ASP.NET MVC3+EF+三层构架,主要功能分为: 所有页面美工均为作者独立完成,系统开发于1年前,稳定运行良好。 系统目前通过几乎所有PC端...

    茶叶MVC 三层架构

    总的来说,茶叶MVC项目利用三层架构实现了业务逻辑与用户界面的分离,提供了良好的组织结构和可扩展性,使得在Visual Studio 2013环境下进行Web应用开发更为高效和灵活。通过深入理解每一层的功能和交互方式,开发者...

    C#MVC 三层架构 ,清晰明了 bootsrap

    【C# MVC 三层架构详解】 C# MVC(Model-View-Controller)是一种设计模式,广泛应用于.NET框架下的Web应用程序开发。它将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller),以实现...

    asp.net MVC三层架构

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

    asp.net MVC3三层架构demo

    在这个“asp.net MVC3三层架构demo”中,开发者已经构建了一个使用MVC3的示例项目,展示了如何在实际开发中实现业务逻辑、数据访问以及用户界面的分离,以达到良好的代码组织和可维护性。 1. **MVC模式**:MVC模式...

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

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

    MVC 三层架构应用

    MVC三层架构是现代软件开发中常用的模式之一,尤其是在Web应用程序的开发过程中。该模式通过将应用程序分为三个主要部分——模型(Model)、视图(View)和控制器(Controller),来提高代码的可维护性、可扩展性和复用性...

    Mvc4.0 三层结构框架

    在Mvc4.0的三层架构中,我们将其单独放在一个项目里,这使得模型与呈现层(视图和控制器)分离,有利于代码的维护和测试。模型通常包含实体类(Entity Class),它们代表数据库中的表或服务接口中的资源。模型类还...

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

    总结来说,"ASP.NET MVC 三层架构与mvc实例"是一个结合了ASP.NET MVC框架和三层架构思想的BBS系统开发示例,利用这种架构,开发者可以清晰地组织代码,实现数据库操作,同时通过Ajax技术优化用户界面。通过学习这个...

Global site tag (gtag.js) - Google Analytics