浅谈三层与MVC

原创 2016年08月31日 16:36:40

MVC框架(Model View Controller):

MVC 是模型(Model)--视图(View)--控制器(Controller)的缩写,是一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化界面的结构中。
这里要区分清框架和设计模式。两者及其容易混淆,MVC是一种框架。框架与设计模式虽然相似,但是却有着根本的不同。设计模式是对在某种环境中反复出现的问题以及解决该问题的方案的描述,它比框架更加抽象;框架可以用代码表示,也能直接执行或复用,而对模式而言只有实例才能用代码表示,设计模式是比框架更小的元素,一个框架中往往含有一个或多个设计模式,框架总是针对某一特定的领域,但同一模式却可适用于各种应用,可以说框架是软件,而设计模式是软件的知识

总之:框架是大智慧,用来对软件设计进行分工;设计模式是小技巧,对具体问题提出解决方案,以提高代码复用率,降低耦合度。

MVC框架内容:

MVC是一种框架模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。

(1)视图(View)

是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的。
视图是用户看到并与之交互的界面。MVC好处是它能为应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。

(2)模型(Model)

是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据。
模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据,由于应用于模型的代码只需要写一次就可以被多个视图重用,所以减少了代码的重复性。

(3)控制器(Controller)

控制器是应用程序中处理用户交互的部分。通常控制器负责从视图中读取数据,控制用户输入,并向模型发送数据。
控制器接收用户的输入并调用模型和视图去完成用户的需求。


三层架构与MVC的“爱恨情仇”大笑

三层架构是基本的项目分层结果,而MVC则是三层架构的一个变体。
三层:UI 界面层 ;BLL 业务逻辑层 ;DAL 数据访问层 ;Model实体层。
MVC中的M不是三层中的Model(实体层),它其实包括三层中的BLL,DAL,MODEL,这是非常要注意的,也是区别的关键所在。

MVC总是伴随着三层架构。我们一般是在考虑使用了三层架构的基础上再根据具体需求决定是否需要使用MVC。
虽然两者的侧重点不同,但是总体目的是一致的,都是为了分层,解耦。
当然啦,任何一种事物都有优缺点:
MVC优点:
生命周期成本低,MVC使得开发和维护接口的技术含量降低。
部署快,各分其职;
可维护性高,有利于软件工程化管理。
缺点:
不适合小型,中等规模的应用程序,花费大量时间将MVC应用规模不是很大的应用程序会得不偿失的,增加了系统结构和实现的复杂性,降低系统运行效率。
视图与控制器间的过于紧密的连接,妨碍了他们的独立重用。造成视图对模型数据的低效率访问,一般高级的界面工具或构造器不支持模式。
感觉呢,理解起来有些困难,而且还有很多盲点,如果实际应用,难度对于现在的我来说,可能就理解不了了。但是有困难,才有乐趣,加油!奋斗


版权声明:本文为博主原创文章,未经博主允许不得转载。

初识MVC——MVC与三层/MVC与设计模式

题记:对于刚接触项目的菜鸟来说,MVC是一个新鲜的东西,浅显的知道MVC是分为MODEL、View和controler层,于是觉得它与我们曾经用到的三层架构相似,于是就错误的混到了一起。由于想要知道它...
  • u012581322
  • u012581322
  • 2015年12月16日 21:53
  • 866

asp.net中的MVC与三层的区别

第一种解释: 与MVC的区别  MVC(模型Model-视图View-控制器Controller)是一种设计模式,我们可以用它来创建在域对象和UI表示层对象之间的区分。   同样是架构级别的,相同的...
  • a631464421
  • a631464421
  • 2014年02月18日 09:27
  • 1405

三层架构和 MVC 模式的区别与联系

三层架构与MVC模式的区别与联系
  • qq_16603341
  • qq_16603341
  • 2017年04月22日 15:40
  • 654

asp.net mvc与传统三层架构的区别

1.传统WebForm开发中存在的一些问题 传统的ASP.NET开发中,微软的开发团队为开发者设计了一个在可视化设计器中拖放控件,编写代码响应事件的快速开发环境。然而,它所带来的负面效应是: 由于...
  • ymnets
  • ymnets
  • 2012年06月11日 14:45
  • 2570

什么是MVC模式?MVC三层架构的含义和作用?

MVC是一种框架型模式,它本身并不引入新的功能,只是用来指导我们改善应用程序的架构,使应用的模型和视图相分离,从而得到更好的开发和维护效率。 在MVC模式中,应用程序被划分成模式、视图和控制器三个部分...
  • qq_36969411
  • qq_36969411
  • 2017年09月19日 11:07
  • 328

.net 网站(MVC)三层架构实践代码

一.任务     创建一个.Net,C#,MVC的网站,采用三层架构,实现对一个Sql server中表数据的查询。 二.何谓三层架构     三层架构,指的是把系统分成三个部分:数据处理层(DAL:...
  • xuanwuziyou
  • xuanwuziyou
  • 2014年03月03日 17:47
  • 1960

JavaEE 三层架构的浅谈

三层架构 三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,...
  • qq_33642117
  • qq_33642117
  • 2016年07月11日 17:23
  • 5989

【Asp.Net MVC+EF+三层架构】详解(一)初见

前言:        这个项目是小编我进入公司开始全面重头开始着手的第一个项目,在宝宝的IT生涯里这是一个里程碑,有着与众不同的意义。那么在之后小编会从头至尾的写一组关于Asp.Net MVC+EF...
  • LyySwx
  • LyySwx
  • 2017年12月30日 12:22
  • 200

Java三层与MVC的区别

MVC是Model—View—Controler的简称。即模型—视图—控制器。MVC是一种设计模式,它强制性的把应用程序的输入、处理和输出分开。 MVC中的模型、视图、控制器它们分别担负着不同的任务...
  • u013315062
  • u013315062
  • 2016年02月24日 08:57
  • 982

菜鸟级三层框架(EF+MVC)项目实战之 系列四 UI层ASP.NET MVC实现CRUD

概述:该节主要目的是通过ASP.Net MVC3.0快速实现增删改查。 一、创建MVC项目       1.1、在解决方案中添加MVC3.0项目               vs2010中没有自...
  • dcyly2004
  • dcyly2004
  • 2016年07月16日 09:50
  • 807
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:浅谈三层与MVC
举报原因:
原因补充:

(最多只允许输入30个字)