MVC框架理解
2017-12-14 本文已影响0人
AngerCow
我们先来看看什么是MVC?
全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
MVC 编程模式
MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式:
- Model(模型)表示应用程序核心(比如数据库记录列表)。
- View(视图)显示数据(数据库记录)。
- Controller(控制器)处理输入(写入数据库记录)。
MVC 模式同时提供了对 HTML、CSS 和 JavaScript 的完全控制。
Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。
通常模型对象负责在数据库中存取数据。
View(视图)是应用程序中处理数据显示的部分。
通常视图是依据模型数据创建的。
Controller(控制器)是应用程序中处理用户交互的部分。
通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
MVC 分层有助于管理复杂的应用程序,因为您可以在一个时间内专门关注一个方面。例如,您可以在不依赖业务逻辑的情况下专注于视图设计。同时也让应用程序的测试更加容易。
MVC 分层同时也简化了分组开发。不同的开发人员可同时开发视图、控制器逻辑和业务逻辑。
框架主要包含三个内容:
视图(View)
视图是用户看到并与之交互的界面。
模型(Model)
模型表示企业数据和业务规则。
控制器(Controller)
控制器接受用户的输入并调用模型和视图去完成用户的需求。
image.png
**控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。
引自[百度百科]
我们从结构图可以看出,整个框架形成了一个闭环,这也符合设计模式的开放-封闭原则。那我要区分框架与设计模式有什么区别。
基本上,每一个模块只要与上一个模块通讯,不需要知道上个模块跟其它模块的关系。这样可以分离出单个模块,在开发中,这对团队分工与细分工作有很大的好处。
**一个框架里可能有多个设计模式,但是一个设计模式不能统称为框架。设计模式是设计上的复用,框架是代码的复用。设计模式是比框架更抽象的,框架可以用代码表示,可以直接执行与复用,设计模式只有实例可以复用执行。
如果是小型项目,引入mvc可能会增加项目周期,mvc前期设计与搭建比较费时费力,这是需要需要精心的计划的。
理解好mvc,做为程序进阶的一步重要步骤,没有好理想的程序员不是好美术。
这是顺便说下MVP,MVVM模式。可以加深mvc理解。
转自这里
MVP
MVP 模式将 Controller 改名为 Presenter,同时改变了通信方向。
[图片上传失败...(image-90cd76-1513221593103)]
1. 各部分之间的通信,都是双向的。
2. View 与 Model 不发生联系,都通过 Presenter 传递。
3. View 非常薄,不部署任何业务逻辑,称为"被动视图"(Passive View),即没有任何主动性,而 Presenter非常厚,所有逻辑都部署在那里。
MVVM
MVVM 模式将 Presenter 改名为 ViewModel,基本上与 MVP 模式完全一致。
[图片上传中...(image-95c34f-1513221593103-0)]
唯一的区别是,它采用双向绑定(data-binding):View的变动,自动反映在 ViewModel,反之亦然。Angular
和
都采用这种模式。