zoukankan      html  css  js  c++  java
  • M、V、C

    概述


    • 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的通信
     
    分类: 设计模式
  • 相关阅读:
    iOS之NSString类型为什么要用copy修饰
    【转】高频使用的git清单
    【转】把Git Repository建到U盘上去
    python程序的打开运行方式
    python运算符的优先级顺序
    iOS之正则表达式(一)
    iOS之input file调用相册控制器消失跳转到登陆页
    监督学习与无监督学习
    常用的文件打开模式
    编码格式
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/4805877.html
Copyright © 2011-2022 走看看