初识MVC与三层架构

MVC 即 Model View Controller 。mvc是一种很好的设计模式的综合应用。其中

M 即Model(模型层),主要负责处理业务逻辑以及与数据库的交互。

V 即View(视图层),主要用于显示数据和提交数据。

C 即Controller(控制器),主要用于接受请求并控制请求转发。

 

三层架构,是最基本的项目分层结果。秉承“高内聚,低耦合”的思想,将整个业务应用划分为:UI层(表示层)、BLL(业务逻辑层)、DAL层(数据访问层)。系统的主要功能和业务逻辑在BLL层进行处理。

UI:表示层,也叫做用户界面层,用来接受用户的请求,以及数据返回。。可以是WEB、也可以是WinForm。

BLL:业务逻辑层,主要负责对数据层的操作,对数据业务逻辑的处理。

DAL:数据访问层,直接操作数据库,包括增、删、改、查、备份、还原等操作。

 

从二者的区别,我没有在网上找到一个定论,主要观点以下有几个:

① MVC是一种复合设计模式,而三层是一个软件架构。

软件架构是用接口来实现的,而设计模式则是一种设计思想、设计理念的升华,也可以算做一种解决方案。一个系统一般只有一个软件架构,而可以有多个设计模式,因为设计模式是可以复用的。

② 在三层架构中没有定义Controller的概念,而MVC中也没有将业务的逻辑访问看成两个层。当然了。在三层中也提到了Model,但是三层架构中Model(Entry)的概念与MVC中Model的概念是不一样的,“三层”中典型的Model层是以实体类构成的,而MVC里,则是由业务逻辑与访问数据组成的。  

③三层结构模式又可归于部署模式,MVC可归于表示模式。

④三层架构划分为:View(UI)、BIZ(BLL)、ADO(DAL)、Entity(Model)、Controller。而MVC把
BIZ(BLL)、ADO(DAL)、Model(Entity) 统一称之为 模型(MODEL),得到:View、Controller、模型(MODEL) 三层。

       我认为,二者并不是互斥的,相反,MVC和多层应用软件结构有着异曲同工之妙,而且可以相互结合进行开发。MVC中的每一个环节都可以采用多层应用软件结构进行设计。而多层应用软件中的每一层又可以采取MVC来进行设计。所以说​可以是:M层对应于BLL和DAL。V对应于UI,而C则对应于层与层之间的联系。也可以M对应于DAL,C对应于BLL,而V仍然对应于UI。 

 

时间: 2024-09-28 16:24:33

初识MVC与三层架构的相关文章

浅谈MVC与三层架构

  首先给大家引入下MVC的概念:   MVC(Model View Controller)模型.视图以及控制器,它是一种较为广泛应用的结构设计模式.   模型:就是在MVC设计模式中需要被显示的数据.在通常情况下,该模型需要从数据库中读取数据.保存模型的状态等,提供数据的访问方法以及数据的维护.   视图:就是用来显示模型中数据的用户界面,一般来书,视图就是HTML页面.   控制器:就是用来处理对用户的输入或者交互命令,以便改变模型的状态,选择适当的视图来显示对应的模型数据.   工作机制如

MVC+EasyUI+三层架构简单权限管理系统_实用技巧

闲来无事把以前做的一个项目整理了一下,今天拿出来跟大家分享,交流和探讨.希望大家多多指正. 一.项目架构图 其中Entity为模型实体层类库:DAL为数据访问层类库,主要负责数据库操作:BLL为业务逻辑类库,Common为公共帮助类库,WebUI为用户层. 非Web层的所有实体类模板都已在项目中创建好,直接用动软生成就可以了. 二.数据库相关表 数据库文件放在web层的DB目录中 三.功能界面 *整个项目的样式都采用的是easyui自带的bootstrap样式.项目中涉及到的相关js验证规则,都

ssi框架学习总结(mvc三层架构)_JSP编程

相信大家对于mvc的三层架构已经灰常熟悉了,在这就不细讲了,个人感觉ssi的框架结构还是比较典型的mvc三层架构,还是比较容易上手的.关于这块的入门我想特别感谢下FrankHui童鞋,在他的帮助下,我才能比较快滴熟悉了这个架构,对我学习ssi的框架还是很有帮助滴.ssi的框架主要是由struts2,spring以及ibatis组成,他们负责各层之间的交互与协作,从而实现整个web端的功能实现与整合.Struts目前主要负责数据传递和控制方面,spring则依靠其强大的依赖注入技术实现了类似bea

java中的mvc和三层结构究竟是什么关系

一件事,要知其然往往很简单,要知其所以然通常不是那么容易,就如最近重新巩固spring的过程中,就觉得还有许多问题其实并不是十分明了. 屈指一算,手头上做过的正式项目也有了四五六七个了,不管用的数据库和其他一些细节上的技术如何,总的来说大的框架结构都是差不多的. 说白了,也就是mvc和三层结构. 而mvc和三层结构究竟是什么关系,我曾在面试的过程中被人问过几次,也曾仔细的想过.查过这个问题,但是直到此时,我也还是不能完全确定. 只不过随着时间的积累,随着技术的沉淀,随着视野的拓宽,我大体上认同了

c#-MVC三层架构中的的添加功能怎么写

问题描述 MVC三层架构中的的添加功能怎么写 在MVC 三层架构中 DAL层的代码怎么写 BLL层的代码怎么写 视图中的模板页怎么用 解决方案 MVC不过是个编程规则,指导思想,它只是在指引技术应该怎样设计 搞.NET的话有ASP.NET MVC,具体下载个PDF或者视频啃啃吧 解决方案二: 好像没有三层架构的概念,在你建好各个类拉好关系后会自动生成数据库,也可以用自己建的数据库(要完全对应),如果你要三层架构是要操作数据库的话 mvc我是用Tolinq(就像在cs写sql语句一样),把数据结果

api-如何将三层架构里的方法在MVC中定义成接口

问题描述 如何将三层架构里的方法在MVC中定义成接口 如何将三层架构里写好的增删改查方法在MVC中定义成api接口,给个具体的实例!或者写一个增删的实例.谢谢啊! 这个不会,麻烦高手指点下! 解决方案 用什么框架?用什么语言写这个api接口? http的接口就可以实现这个功能. 解决方案二: 都说了在MVC模式中中使用三层架构 定义一个API的控制器 把三层架构里的增删改查方法在API类里定义成接口了 然后前台再调用接口实现对数据的操作 不让用HTTP 要是可以的话 我就不问了 直接就弄出来了

再谈三层架构

    再次谈起三层架构来,初识三层时的那种向往,那种青涩,已经不见了踪影,取而代之的是对分层的感慨.     分层,三层也好,七层也罢,都是将页面显示.业务逻辑控制.数据访问进行解耦.还有MVC和设计模式也是这样.只分UI,BLL,DAL这三层,只是实现了基本的解耦,但是耦合性还是很高的,尤其是对于中型及以上的系统来说,简单的三层并不能满足其需求.DAL提取出DBHelper,BLL中提取出Facade层,还有各层之间其实都应该加上接口.这样系统的灵活性才会大大提高.     对于B层的划分,

如何在ASP.NET中使用三层架构

  学ASP.NET都知道它的最经典的架构是三层架构,也是目前应用得最广泛的一种架构.以前说起三层架构大家都知道MVC架构,这是html开发中用得比较多的,现在AJAX主要就是用这种架构.大家ASP.NET的三层是指数据访问层,业务逻辑层和表示层,而且都知道数据访问层是用来访问数据的,业务逻辑层是用来处理一些系统的业务逻辑的,表示层就是把内容呈现出来给用户,与用户进行交互的.划分三层的好处就是每一层都是独立的,修改其中一层一般不会影响其他层的代码,这样就大大的方便了日后的维护和升级.它最大的缺点

三层架构的学习

为什么要使用三层架构 对于一个简单的应用程序来说,代码量不是很多的情况下,一层结构或二层结构开发完全够用,没有必要将其复杂化,如果对一个复杂的大型系统,设计为一层结构或二层结构开发,那么这样的设计存在很严重缺陷.下面会具体介绍,分层开发其实是为大型系统服务的.在开发过程中,初级程序人员出现相似的功能经常复制代码,那么同样的代码写那么多次,不但使程序变得冗长,更不利于维护,一个小小的修改或许会涉及很多页面,经常导致异常的产生使程序不能正常运行.最主要的面向对象的思想没有得到丝毫的体现,打着面向对象