什么是MVC?使用MVC的好处是什么?

什么是MVC?使用MVC的好处是什么?,第1张

MVC是三个单词的缩写,分别为: 模型(Model),视图(View)和控制Controller)。 MVC模式的目的就是实现Web系统的职能分工。 Model层实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现。 View层用于与用户的交互,通常用JSP来实现。燃厅 Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的 *** 作。\x0d\x0a低耦合性\x0d\x0aMVC的好处\x0d\x0a视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制旅段如器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动MVC的模型层即可。因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。\x0d\x0a高重用性和可适用性\x0d\x0a随着技术的不断进步,现在需要用越来越多的方式来访问应用程序。MVC模式允许你使用各种不同样式的视图来访问同一个服务器端的代码。它包括任何WEB(HTTP)浏览器或者无线浏览器(wap),比如,用户可以通过电脑也可通过手机来订购某样产品,虽然订购的方式不一样,但处理订购产品的方式是一样的。由于模型返回的数据没有进行格式化,所以同样的构件能被不同的界面使用。例如,很多数据可能用HTML来表示,但是也有可能用WAP来表示,而这些表示所需要的命令是改变视图层的实现方式,而控制层和模型层无需做任何改变。\x0d\x0a较低的生命周期成本\x0d\x0aMVC使降低开发和维护用户接口的技术含量成为可能。\x0d\x0a快速的部署\x0d\x0a使用MVC模式使开发时间得到相当大的缩减,它使程序员(Java开发人员)集中精力于业务逻辑,界面程序员(HTML和JSP开发人员)集中精力于表现形式上。\x0d\x0a可维护性\x0d\x0a分离视图层和业务逻辑层也使得WEB应用更易于维护和修改。\x0d\x0a有利于软件工程化管理\x0d\x0a由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利拆启于通过工程化、工具化管理程序代码。

Step1.情景概要

Hello,小伙伴们贺漏,昨天跟大家分享了JAVAEE企业级应用开发中大家耳熟能详的概念-三层架构,那么有的小伙伴可能就会有疑问了,这种代码书写方式我每天写这些web项目时都是在采用该方式呢,沙河IT培训发现那跟我们所接触的MVC有啥区别呢,借着这样的疑问,我们今天聊聊我们程序员们在开发时经常提到的MVC。

Step2.问题浅析

在开发中,我们可能总是不经意间就将三层架构与Mvc混为一谈,殊不知它俩并不是一个概念。下面我来为大家揭晓我所理解的一些“真相”。

三层架构:通常意义上的三层架构就是将整个业务应用划分为:界面层(UserInterfacelayer)、业务逻辑层(BusinessLogicLayer)、数据访问层(Dataaccesslayer)。区分层次的目的即为了“高内聚低耦合”的思想。

MVC:全名是ModelViewController,是模型(Model)-视图(View)-控制器(Controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。

哈哈,看过概念感觉有点晕晕的,那具体该怎么去理解它呢?

Step3.回归代码

在步骤二中对于三层架构与MVC的概念性问题做了一个解释,当然对于宽拍坦我们程序员来说概念神马都是浮云,只有代码才是我们的钟爱,接下来我们来具体来看看通过慎桐代码怎么去理解两者区别。同样还是借助我们昨天的用户登录场景来分析。

在没有分层的情况下,也没有MVC概念的前提下,我们想要通过服务器端给浏览器响应一个登录页面。

asp.net Web Forms

优点:最重要的一点解决方案多,经验丰富,什么需求基本都能找到解决方法。没有什么比服务器端控件再好用的东西了。数据绑定控件(gridview,formview),数据原(objectdatasource,sqldatasource,linqdatasouce),有了这些控件开发业务系统觉得没有比用web forms更好,更快的技术了 提供的服务多,到asp.net2.0 .net framework就提供很多非常好的服务,profile,membership,cache,Microsoft patterns &practices(企业库)UI控件,AJAX,第三支持的比较多有着很多成熟的开发模型比如微软推出petshopN层架构 。

缺点:因为使用了功能强大的服务器控件导致页面比较大,每次post,response的数据相对ajax,silverlight肯定是大的,会影响性能。

Silverlight

优点:开发富互联网应用(RIA)绝对是最合适的技术,,新版Silverlight集成GPU加速,开发3D,多媒体绝对是利器。

对于一些业务系统,做得好的,真的好看,而且好用,用户体验也很好网上可以找不少Demo

新的Silverlight开发模式MVVM虽然比较新但真的很好用,如果要做业务系统那么一定要用MVVM这个设计模式太能体现更多Silverlight开发优势(databinding 功能强大)

缺点:掌握UI设计工具的人太少,所以做不出很酷,很炫的页面效果。

与后台交互不方便,所有交互只能是web service(WCF),虽然RIA1.0也很方便,但都是异步 *** 作,总没有web form那么直接了当。回调来对调去的还有4.0提供了很强大的匿名方法还有Action<>这些类库。

最后我只能说要想做得好真不容易。

ASP.NET MVC

我还没有用mvc 2,3做过项目只是最近做一些tutorial,给我的影响就是返朴归真,与后台交互回到了最原始Post,Response,类似回到ASP时代。

优点:层次清晰,Model,Controller,View ,Action,都有向导产生,非常规范,感觉就是很专业,像是搞大项目架构,不想web form那么随意。

页面展现和后台完全分开,去掉了服务器端控件,与后台交互使用JSON数据对象,所以性能上一定优于web form 还有同样强大的Route URL功能,搜索引擎优化SEO。

成熟的MVC设计模式。

缺点:取消了服务器端控件,使得一些业务系统的输入变得更为单调,在一些也用户的互 *** 作上大打折扣。

与后台交互虽然比Silverlight要好点,不用异步方法,但只能post,submit还是没有web form的事件机制好用。

一定要精通javascript,Jquery,Json不然UI这关真不好过。

最后对于开发业务系统最主要还是提供用户很方便输入数据,快速响应 *** 作,对于开发人员就能很方便保存和更新数据,能很方便调用的需要数数据,调用特定的方法,并返回需要结果。能很方便的调试代码。

虽然silverlight,asp.net mvc都是在asp.net webform后出来的技术,但也没有必要就认为Silverlight,MVC就一定比传统的asp.net webform就好。其实不关什么技术都是为了解决不同的问题而产生,每项技术都有他存在的价值。

可惜很多开发人员对web form的了解还停留在asp.net 1.0的时代,很多asp.net的新特性都没有用到,还有就是拿asp.net的开发模式去开发silverlight应用。

平台演变

1.以web2.0为基础,基于互联网的B/S架构的软件。它本身也是一个软件,只不过不是最终的软件产品,而是用于二次开发的软件。

2.用于实现各类业务系统,如CRM、MIS、ERP、HIS、OA等等的开发。web开发平台本身就是一个二次开发平台,他不同于诸如eclipse等这样的开发工具,需要写大量的代码来完成各个业务模块,二次开发平台只需要设计好自己的数据结构,进行一些简单的配置、拖拉等 *** 作就可以完成业务系统的开发。

3.能够快速的实现各种报表包括复杂的图表报表的设计制作,传统的编码式开发需要自己去编写想要的各种报表,而运用开发平台就简单多了,可以很轻松的配置出各种报表。

使用web开发平台的目的是为了实现资源共享、节约开发成本、提高开发效率、缩短开发周期。而如今的开发平台大都采用非编码的方式或者是极少编码的方式,这样正好达到了目的。有的甚至可以减少80%的代码量,可见效率会提高多少。

早期开发平台

在IE出现之前,很多人就对如何实现快速开发做了大量的研究。诸如用友、金蝶等都有自己的开发构件库,还有SAP的ABAP开发平台等等。但是ABAP开发平台太复杂,一般的程序员一下子很难用起来;而用友金蝶的开发构件库又只能自己用,无法开放出来,所以难于通用。所以说早起的开发平台的基本状况是:要么功能强大,使用复杂;要么难于通用。

随着IE的出现,这种类型的开发平台也就被迫要转向web开发平台了。但是对于以上这些开发平台的问题的研究,可以积累web开发平台的经验,避免走更多的弯路。利用web的便利性,也能独辟蹊径,一举使得web开发平台实用起来。

编码思考

当我们一次次地重复编写类似的代码时,一次次地CTRL+C、CTRL+V的时候,我们都会想,下次把它做成一个通用的公共类,省得每次都改这么多地方,或者说等有时间了做一个业务工具,直接用工具配置一下就可以,不用写代码了。久而久之,开发平台就形成了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12532221.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存