码迷,mamicode.com
首页 > Web开发 > 详细

浅谈MVC

时间:2015-07-27 15:05:03      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:mvc

浅谈MVC


什么是MVC?


MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。参考维基百科
MVC模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。除此之外,此模式通过对复杂度的简化,使程序结构更加直观。
其中,各个层的工作如下:
1. 模型(Model) 用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。“ Model ”有对数据直接访问的权力,例如对数据库的访问。“Model”不依赖“View”和“Controller”,也就是说, Model 不关心它会被如何显示或是如何被操作。但是 Model 中数据的变化一般会通过一种刷新机制被公布。为了实现这种机制,那些用于监视此 Model 的 View 必须事先在此 Model 上注册,从而,View 可以了解在数据 Model 上发生的改变。(比较:观察者模式(软件设计模式))
2. 视图(View)能够实现数据有目的的显示(理论上,这不是必需的)。在 View 中一般没有程序上的逻辑。为了实现 View 上的刷新功能,View 需要访问它监视的数据模型(Model),因此应该事先在被它监视的数据那里注册。
3. 控制器(Controller)起到不同层面间的组织作用,用于控制应用程序的流程。它处理事件并作出响应。“事件”包括用户的行为和数据 Model 上的改变。


为什么需要MVC?

技术的出现是为了解决问题,不是为了技术而使用技术。在没有MVC模式之前,可能在一个前段的页面上直接访问数据库操作,这样的代码是非常不方便于查错以及代码维护,代码的可复用性也无从谈起,MVC设计模式就是来解决这个问题。

  • 首先,多个 View 能共享一个 Model 。
    在实际的开发中,应用程序的展示方式可能不止一种。比如网页版和桌面版,wap版。这样,无论用户使用哪一种方式访问数据,共享的都是一个model层。
  • 其次,Controller 是非常独立内聚的对象,与 Model 和 View 保持相对独立,所以可以方便的改变应用程序的数据层和业务规则。比如,数据库从MySql迁移到Oracle,只需更改model层的代码即可。无需更改controller层。
  • 同时Controller 提高了应用程序的灵活性和可配置性。Controller 可以用来连接不同的 Model 和 View 去完成用户的需求,也可以构造应用程序提供强有力的手段。给定一些可重用的 Model 、 View 和Controller 可以根据用户的需求选择适当的 Model 进行处理,然后选择适当的的 View 将处理结果显示给用户。

MVC的缺点?

由于视图和模型比较分离,这样调试相对比较困难。

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

浅谈MVC

标签:mvc

原文地址:http://blog.csdn.net/weiyongxuan/article/details/47083803

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!