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的通信

分类: 设计模式

时间: 2024-10-10 05:22:09

M、V、C的相关文章

Java中E、T、K、V、N的含义

Java泛型中的标记符含义:  E - Element (在集合中使用,因为集合中存放的是元素) T - Type(Java 类) K - Key(键) V - Value(值) N - Number(数值类型) ? -  表示不确定的java类型 S.U.V  - 2nd.3rd.4th types Object跟这些标记符代表的java类型有啥区别呢?  Object是所有类的根类,任何类的对象都可以设置给该Object引用变量,使用的时候可能需要类型强制转换,但是用使用了泛型T.E等这些标

五种典型开发周期模型(瀑布、V、原型化、螺旋、迭代)

总结一下经常可以见到的系统开发周期模型.    在过去的几年里,可以很奇葩的碰到类似于"创业项目库"这种需求非常明确,工作量十分可控,对质量要求比较低,业务建模比较easy,功能构成比较少的"面子项目".类似于这种项目,采用传统意义上的瀑布模型就非常合适了,如果范围控制和风险控制做的比较好的话,真的如同一个瀑布一样,会"飞流直下三千尺",直接将项目送到客户的小机上,部署运行,大家欢乐的拿到绩效奖金,回家happy去了.    但是仅仅注重&quo

简述MVC模式中M、V、C分别指代什么及发挥的作用

C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新. 视图是用户看到并与之交互的界面,视图没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式. 模型表示企业数据和业务规则,模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据,由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性. 控制器接受用户的输入并调用模型和视图去完成用户的需求,控制器本身不输出任何东西和做任何处

客户端高性能组件化框架React简介、特点、环境搭建及常用语法

明天就是春节了 预祝大家新春快乐 [ ]~( ̄▽ ̄)~* 天天饭局搞得我是身心疲惫= = 所以更新比较慢 今天想跟大家分享的就是这个大名鼎鼎的React框架 简介 React是这两年非常流行的框架 并不难,还是挺容易上手的 起源于Facebook内部项目(一个广告系统) 传统页面从服务器获取数据,显示到浏览器上,用户输入数据传入服务器 但随着数据量增大,越来越难以维护了 Facebook觉得MVC不能满足他们的扩展需求了(巨大的代码库和庞大的组织) 每当需要添加一项新的功能或特性时,系统复杂度就

client高性能组件化框架React简单介绍、特点、环境搭建及经常使用语法

[本文源址:http://blog.csdn.net/q1056843325/article/details/54729657 转载请加入该地址] 明天就是除夕了 预祝大家新春快乐 [ ]~( ̄▽ ̄)~* 天天饭局搞得我是身心疲惫= = 所以更新比較慢 今天想跟大家分享的就是这个大名鼎鼎的React框架 简单介绍 React是近两年非常流行的框架 流行到什么程度呢? 我看了一下Github上的数据 React达到了5w8+的star 在JavaScript中star排名第4 受欢迎程度可见一斑

单相、二相、三相区别

单相是220伏电压.相线对零线间的电压.两相的是相线的A和B或C,之间的相电压是380,常见的用电器是380的电焊机.三相的是A.B.C之间的380V的相间电压,用电器是三相电380V的电机或设备. 整流器将交流电变成直流电. 电机电容不能代替励磁机.励磁机是定子线圈和转子线圈同时送电才能转的有碳刷可调速的电机 . 两相电只在单相电动机中存在,它是由单相在两个绕组中分裂而成,例如,一个绕组不串电容器,另一个绕组串电容器,两个绕组的电流的相位就相差约90°,就会产生旋转磁场,使电动机工作.供给电动

文法、语言、正则表达式

文法的形式定义于分类 一个上下文无关文法有四个元素组成: 一个终结符号集合,也称为词法单元. 一个非终结符号集合,也称为语法变量. 一个产生式集合. 一个开始符号. 文法G可以抽象成四元组的形式:G=(VN,VT,P,S) 其中VN表示非终结符集,VT表示终结符集,P表示产生式集,S表示开始符号. 文法G描述的语言用L(G)表示L(G)={w|w∈VT*且S=+>w} 符号串w从开始符号推导出来 w仅由终结符号组成 w称为该语言的句子 L(G)由所有这样的句子构成 约定: 大写字母A~Z表示非终

笔记9(日常运维2iptables nat表、zone、service、cron、chkconfig、systemd、unit、target、rsyncscreen)

nat表应用 A机器两块网卡ens33(192.168.133.130).ens37(192.168.100.1),ens33可以上外网,ens37仅仅是内部网络,B机器只有ens37(192.168.100.100),和A机器ens37可以通信互联. 需求1:可以让B机器连接外网 查看路由转发:cat /proc/sys/net/ipv4/ip_forward 如果是0,我们需要打开它 A机器上打开路由转发 echo "1">/proc/sys/net/ipv4/ip_forw

电流、电压、功率的计算方式

本文转自银河电气(点击查看原文)电流.电压.电阻.功率的关系_AnyWay 电流.电压.电阻.功率是电子电路中的重要技术参数,相关参量都可以根据其基本原理计算得出.本文主要对电流.电压.电阻.功率参数换算关系及电路中的特性进行介绍. 一.电流.电压.电阻.功率关系式 电流.电压.电阻.功率等参数间有以下换算关系. 功率=电流*电压 功率=电压*电流 电流=电压/电阻 功率:符号P单位W: 电压:符号U单位V: 电阻:符号R单位Ω: 电流:符号I单位A: 二.电流.电压.电阻.功率在通用电路中的关