MVC框架理解

我们先来看看什么是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)
    控制器接受用户的输入并调用模型和视图去完成用户的需求。
    MVC框架理解_第1张图片
    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

Ember

都采用这种模式。

你可能感兴趣的:(MVC框架理解)