MVC (Modal View Controler)本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器。 使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。 比如一批统计数据你可以分别用柱状图、饼图来表示。 C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。
一、简述MVC工作原理
MVC模式(Model-view-controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。
1、由客户端发起请求;2、服务端接收请求,并解析请求;3、根据解析出来的请求,找到对应的控制器,并执行控制器;4、控制器调用模型获取数据,并将数据传给视图;5、视图将数据渲染出来。
二、MVC的特点
MVC重要特点就是两种分离:
视图和数据模型的分离:使用不同的视图对相同的数据进行展示;分离可视和不可视的组件,能够对模型进行独立测试。因为分离了可视组件减少了外部依赖利于测试。(数据库也是一种外部组件)
优点:耦合性低;重用性高;生命周期成本低;部署块;可维护性高;有利软件工程化管理。
缺点:没有明确的定义;不适合小型,中等规模的应用程序;增加系统结构和实现的复用性;视图与控制器间的过于紧密的连接;视图对模型数据的低效率访问;一般高级的界面工具或构造器不支持模式。
三、目的
实现一种动态的程序设计,是后序对程序的修改和扩展简化,并且使程序某一部分的重复利用称为可能。
通过对复杂度的简化,使程序结构更加直观。
MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。
四、特定环境
较大的项目;需要划分模块的项目。
解决的问题
因为在PHP还不支持面向对象之前,是过程化的方式来创建的,它们将 Model View Controller 三层的代码混在一起,十分混乱。所以它解决的问题有:维护难,开发速度慢,二次开发难度高,工作量大,代码复用,耦合度高,系统不灵活。
实例
应用于基于MVC架构模式的框架,常见的服务器端MVC框架有:Struts、Spring MVC、http://ASP.NET MVC、Zend Framework、JSF;常见前端MVC框架:angularjs、reactjs、backbone;由MVC演化出了另外一些模式如:MVP、MVVM。
五、总结:
首先,在学习MVC之前,我们需要对软件开发的基础知识有一定的掌握。熟悉面向对象编程(OOP)的概念和原则,了解常用的设计模式,对于理解和应用MVC是非常重要的。因为MVC本身就是一个基于OOP和设计模式的架构模式,只有对这些基础知识有了深刻的理解,才能更好地学习和应用MVC。
其次,了解MVC的基本原理和核心概念是学习MVC的第一步。理解M(Model)、V(View)、C(Controller)之间的关系,以及它们各自的职责和作用是非常重要的。Model负责处理应用程序的数据逻辑,View负责展示数据给用户,Controller负责处理用户的输入和业务逻辑。只有对MVC的基本原理有了深刻的理解,才能更好地运用和应用MVC。
总之,学习和应用MVC需要我们深入理解其基本原理和核心概念,通过实践和积累经验,充分利用MVC框架和工具,持续学习和关注MVC的最新动态。通过不断地学习和实践,我们可以更好地运用和应用MVC,提高软件开发的效率和质量。加油加油!!!