iOS MVC架构介绍

iOS MVC架构介绍

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写。
MVC是一个框架模式,它强制性的使应用程序的输入、处理和输出分开。

基本概念:

  • 视图(View):构建UI的类;例如:按钮,标签,进度条等。
  • 模型(Model):视图类所需要的数据;例如:表格需要显示的文字。
  • 控制器(Controller):连接视图类和模型类,任务是使数据显示在屏幕上。

通信方式

  • 控制器可以直接访问模型:将模型直接作为控制器的属性。
  • 控制器可以直接访问视图:将视图直接作为控制器的属性。
  • 模型与视图无法直接访问对方:二者完全解耦,不能引用对方,把对方设置为属性。
  • 视图到控制器的通信:
    • 目标动作机制(target - action):用户与视图交互触发控制器的方法。例如:点击按钮后实现视界面跳转,网络请求,刷新UI等。
    • 委托机制(delegate):视图向控制器询问某些自己无法决定的事情,或是让控制器帮助自己做一些自己独立无法完成的事情。 因为控制器才是掌握全局的角色,很多时候视图是无法自己做决定的。例如:表格问控制器:我可以滚动么?然后控制器给予回答告知是否可以继续滚动。 如果表格的高度很小,那么就可以不让它滚动。但是如果表格的高度已经超过了屏幕的高度,这时候如果让它自作主张无法滚动久不好了。
    • 数据源机制(dataSource):视图让控制器给它将要显示的数据。例如:音乐的数据存在于模型里,控制器访问模型,从模型里拿到数据后告诉视图如何显示出歌曲。
  • 模型到控制器的通信
    • 广播机制(Notification):控制器注册监听某模型数据变化的广播频道,当此模型数据变化后向该控制器发送广播,告知模型变化情况。
    • KVO机制(Key-Value Observing):模型作为控制器的属性,当模型属性被修改后,持有此模型属性的控制器就会收到通知。

iOS MVC架构

借鉴 上天眷顾我 原文地址

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值