0%

关于mvc的一些事情

MVC推出来的时候,是我上次准备离开开发的时候,当时觉得是个新鲜的东西,但是也就没学习动力了。
现在要讲课,心想总要教点与时俱进的东西,因为MVC已经发展到5了,能够这么发展的东西不管如何总有其存在的道理。尽管我现在懂的东西,对付一两门课也绰绰有余。

先来看看什么是MVC。MVC是一种软件架构模式,它把软件系统分为三个部分:模型(Model),视图(View)和控制器(Controller)。模型(Model) 用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。视图(View) 能够实现数据有目的的显示。在视图中一般没有程序上的逻辑。为了实现视图上的刷新功能,视图需要访问它监视的数据模型(Model),因此应该事先在被它监视的数据那里注册。控制器(Controller)起到不同层面间的组织作用,用于控制应用程序的流程。它处理事件并作出响应。“事件”包括用户的行为和数据模型上的改变。

总之,MVC的初衷就是为了解耦,让程序中的执行逻辑与显示逻辑分开,对网站来说这样的好处是显而易见的,首先页面设计与功能开发可以相互独立,这就方便了网站的开发与维护;其次,页面与功能的独立,有利于对功能的测试,这为前两年热门的测试驱动的开发提供了方便。此外,MVC也让程序员能够对网页的执行有充分的掌控,相比web form的页面生命周期,MVC让程序员觉得可以无拘无束地控制网页的执行。

当然,与web form相比,MVC开发的效率会降低,这一方面是MVC会涉及到多个文件的编写,如果没有养成良好的编程习惯,会比较痛苦,另一方面MVC程序的重用率也没有web form高。因为从编程模型来看,web form面向对象的方式可以做更多的封装,而MVC的重用只能通过修改以前的代码了。

所以总的来说,MVC与web form没有谁更好的说法,只能说谁最适合。MVC是比较适合做一些比较轻量的应用,复杂度不高,这样MVC是比较有优势的。web form从某种意义上是它的补充,这可以从MVC5出来后,vs2013中MVC、web form与web api混合着用可见一斑。