前言
很多平台设计模式会有MVC这个东西,不论是网站前端后台,还是移动端等。在iOS苹果推荐这种设计模式来构建App。
效果图
这张图片是斯坦福大学公开课中白胡子老头讲解的挺有意思的老头
职责划分
C 用来协调M 和 V ,持有M和V 的引用。
M 处理和数据有关的操作,比如从网络或者数据库加载数据到Model,还是把Model缓存到本地,还是计算和Model相关的东西。
V 展示C从M获取的数据,做动画,处理你的触摸事件等。
之间的通信
C 通过outlet通知View,因为C 本身持有View
View通过target: action:这个方法通知C
View还可以通过Delegate DataSource 和 C通信,V 向 C通知已经发生的情况,比如一些Delegate事件。由于M不能直接给V提供数据,所以通过DataSource协议方法给V提供数据。
M变化了怎么办,怎么通知C呢,通过KVO或者Notification
参考:斯坦福的大学公开课白胡子老头的MVC课程。
网友评论