【iOS】MVC模式

MVC(Model-View-Controller,模型-视图-控制器)模式是相当古老的设计模式之一,ta最早出现在SmallTalk语言中。现在,很多计算机语言和架构都采用了MVC模式。


MVC模式概述

MVC模式是一种设计模式,由3部分组成,这3部分的作用如下:

  • 模型(Model)。保存应用数据的状态,统一管理一些数据
  • 视图(View)。存放视图,为用户展示信息
  • 控制器(Controller)。接受用户请求,统一调控程序的所有工作,ta负责处理View和Model的事件

对应于哲学中的“内容”与“形式”,在MVC模型中,Model是“内容”,ta存储了视图所需要的数据,View是“形式”,是外部表现方式,而Controller是它们的媒介。

需要重点关注的是,Model与View不能进行任何通信,所有的通信都是通过控制器完成的,看下图:

请添加图片描述

    • Controller和View之间可以通信,Controllor通过outlet(输出口)控制View,View可以通过target-actiondelegate或者data source(想想UITableVeiwDatasource)来和Controller通信
    • Controller在接收到View传过来的交互事件(View就是完成让人和程序的交互的呀,比如按B1按钮)之后,经过一些判断和处理,把需要Model处理的事件递交给Model处理,Controller对Model使用的是API
    • Model在处理完数据之后,如果有需要,会通过Notification或者KVO的方式告知Controller,事件已经处理完,Controller再经过判断和处理之后,考虑下一步要怎么办(是默默无闻的在后台操作,还是需要更新View,这得看Controller的“脸色”行事)。这里的无线天线很有意思,Model只负责发送通知,具体谁接收这个通知并处理它,Model并不关心,这一点非常重要,是理解Notification模式的关键

MVC模式能够完成各司其职的任务模式,达到 “低耦合高内聚”,大大优化了代码的结构、代码量

低耦合: 模型、视图和控制器之间解耦,debug时易于定位是三者哪部分出了问题
高内聚: 模型、视图和控制器各自的职责清晰,功能相关代码封装在各自的组件中

这种设计使得代码更具灵活性、可维护性和可测试性


实际案例

【iOS】计算器App仿写

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值