##什么是mvc模式
mvc是对软件结构的一种分类,它将软件系统分为三个大的模块,分别为**M(模型Model), V(视图View), C(控制器Controller).
MVC模式的目的是实现一种动态的程序设计,简化后续对程序的修改和扩展,并且使程序某一部分的重复利用成为可能.
并且,对于项目组和程序员来说,也可以通过MVC模式将软件分部分,模块化的分工给多个成员完成.
如:
- 模型:完成有关程序的算法功能,数据库数据管理,数据库设计
- 控制器:负责转发请求,对请求进行处理
- 视图:完成对于界面的实现.
MVC模式中的三个组件的详细介绍如下 - 模型(Model):用于封装与应用程序业务逻辑相关的数据以及对数据的处理方法。Model 有对数据直接访问的权力,例如对数据库的访问。Model 不依赖 View 和 Controller,也就是说, Model 不关心它会被如何显示或是如何被操作。但是 Model 中数据的变化一般会通过一种刷新机制被公布。为了实现这种机制,那些用于监视此 Model 的 View 必须事先在此 Model 上注册,由此,View 可以了解在数据 Model 上发生的改变。(如,软件设计模式中的“观察者模式”);
- 视图(View):能够实现数据有目的的显示(理论上,这不是必需的)。在 View 中一般没有程序上的逻辑。为了实现 View 上的刷新功能,View 需要访问它监视的数据模型(即 Model),因此应该事先在被它监视的数据那里注册;
- 控制器(Controller):起到不同层面间的组织作用,用于控制应用程序的流程。它处理事件并作出响应。“事件”包括用户的行为和数据 Model 上的改变。
优点
低耦合
将程序分为三层模型,各个模型业务不重复,不冲突,容易实现应用程序和数据层业务层的分离.三个层次分别独立完成各自功能,改变其中的某一个并不影响另外连个的功能的实现.
重用性高
MVC中的代码已经从表示层中分离出来,相关的代码可以用于其他软件的相同业务数据层中,这样可以最大化对代码进行利用,并且,这个代码的重用是不需要处理其他应用的控制层和表示层的.
生命周期成本低
MVC模式使用开发和维护用户接口的技术含量降低
部署快
使用 MVC 模式进行软件开发,使得软件开发时间得到相当大的缩减,它使后台程序员集中精力于业务逻辑,界面(前端)程序员集中精力于表现形式上。
可维护性高
分离视图层和业务逻辑层使得 WEB 应用更易于维护和修改。
有利软件工程化管理
由于不同的组件(层)各司其职,每一层不同的应用会具有某些相同的特征,这样就有利于通过工程化、工具化的方式管理程序代码。控制器同时还提供了一个好处,就是可以使用控制器来联接不同的模型和视图,来实现用户的需求,这样控制器可以为构造应用程序提供强有力的手段。给定一些可重用的模型和视图,控制器可以根据用户的需求选择模型进行处理,然后选择视图将处理结果显示给用户。