zoukankan      html  css  js  c++  java
  • 设计模式-01-MVC

    概述


    • Model-View-Controller(MVC),即模型-视图-控制器。
    • MVC将软件系统分成三大部分:Model,View,Controller,三个部分通过某种机制通信

    M、V、C的职能


    • M(Model)
      • 应用程序的核心,用于处理应用程序数据逻辑部分
    • V(View)
      • 处理应用程序数据的显示
      • 通常依据Model创建
    • C(Controller)
      • 处理用户的交互
      • 从视图读取数据,控制用户输入,并向模型发送数据

    M、V、C之间的通信


    • 图解(出自斯坦福大学CS193课程的课件

    • Controller与Model之间的通信

      • Controller可以主动向Model发起会话
      • Model职能被动地回复Controller发起的会话,不能主动请求Controller
    • Controller与View

      • Controller可以完全操控View,因为Controller要把View显示在屏幕上
      • View可以向Controller发送消息,因为View要将用户的动作传递给Controller
    • Model与View之间无法直接通信

    • 总结

      • Controller对Model:
        • 通过API
      • C对V:
        • Outlet
      • V对C:
        • Target-action,Delegate,Datasource
      • M对C:
        • Notification,KVO

    V与C之间通信的方式


    • 目标操作(target-action)
      • Controller内会悬挂一个目标(target),并将一个操作(action)给将要和它交流的视图对象,如图解中的target与action
      • 如,为View中的某个按钮添加一个监听事件,当按钮被点击时就执行相应的处理。
    • 委托
      • 为视图中的某个控件设置代理,当控件被操作时发送相应的代理消息,执行相应的代理方法,实现View与Controller的通信
      • 如,tableView的代理
    • 数据源
      • Controller通过数据源将View需要的数据传递给View,实现Controller与View的通信
  • 相关阅读:
    nodejs
    flask中flash(闪现)的使用
    flask中logger日志的使用
    flask中session的使用
    flask开启调试模式
    flask中静态文件的引入
    flask中模板引入
    python web开发屠龙刀flask
    python操作excel基础1-环境搭建
    php算法-dijkstra
  • 原文地址:https://www.cnblogs.com/theDesertIslandOutOfTheWorld/p/4804083.html
Copyright © 2011-2022 走看看