MVC

 MVC即Model、View、Controller,即模型、视图、控制器,这不是框架,而是一种设计的思想。

MVC中的M、V、C分别是什么?

 Model ---  用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。“ Model ”有对数据直接访问的权力,例如对数据库的访问。“Model”不依赖“View”和“Controller”,也就是说, Model 不关心它会被如何显示或是如何被操作。 这样的好处在于模型被写了一次,就可以被多个视图重用。

View --- 视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括Macromedia Flash和象XHTML,XML/XSL,WML等一些标识语言和Web services.。

Controller --- 控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后用确定用哪个视图来显示模型处理返回的数据。

上面是比较具体的介绍,更为简洁的说法如下:

  • 控制器(Controller)- 负责转发请求,对请求进行处理。
  • 视图(View) - 界面设计人员进行图形界面设计。
  • 模型(Model) - 程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)。

在使用node+MongoDB搭建博客时,或者说用 express-generate 产生的一个项目时,其中的 views 就是这里的视图,表现为我们写好的模板引擎; 其中的routes就是这里的Controller, 负责处理用户的请求; 其中的medles就是这里的 Model ,负责对数据(库)的处理。 这就是MVC设计模式。

 

为什么要使用MVC?

  首先,最重要的在于MVC的分离使得多个视图使用一个Model成为可能。即不论用什么样的形式显示,我们都可以只使用一个model,使得代码重用率很高。

  其次,MVC的分离使得代码之间的耦合度降低,操作更加高效。比如我们希望数据库从MongoDB迁移到MySQL时, 也只需要处理model层的代码,而不会影响到view层和controller层。

  最后,这会使你的项目更加的有条理,更容易维护。

 

 

一个最简单的MVC实例

/** 模拟 Model, View, Controller */
var M = {}, V = {}, C = {};

/** Model 负责存放资料 */
M.data = "hello world";

/** View 负责将资料输出到荧幕上 */
V.render = (M) => { alert(M.data); }

/** Controller 作为M和V的桥梁 */
C.handleOnload = () => { V.render(M); }

/** 在网页读取的时候呼叫 Controller */
window.onload = C.handleOnload;

 

 

参考: 维基百科

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值