zoukankan      html  css  js  c++  java
  • 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;

    参考: 维基百科

  • 相关阅读:
    i春秋暑期训练营丨渗透测试工程师开课啦
    CTF必备技能丨Linux Pwn入门教程——环境配置
    i春秋四周年中奖名单出炉丨确认过眼神,你是中奖人
    i春秋四周年福利趴丨一纸证书教你赢在起跑线
    「你学习,我买单」i春秋四周年精品课程福利专场
    i春秋四周年庆典狂欢丨价值6000元的Web安全课程免费送啦
    倒计时3天!i春秋四周年盛典狂欢,钜惠不停
    「学习攻略」0基础转型白帽黑客第一步是什么?
    奖金高达150万元的NEST即将上线,速来报名
    「白帽挖洞技能」YxCMS 1.4.7 漏洞分析
  • 原文地址:https://www.cnblogs.com/zhuzhenwei918/p/6761120.html
Copyright © 2011-2022 走看看