编程比喻之protocol和delegate之间的关系
来源:互联网 发布:手机淘宝合并订单发货 编辑:程序博客网 时间:2024/05/02 02:42
编程比喻之protocol和delegate之间的关系
开篇:
当你还在忍受传统老套的讲解,被专业术语搞的晕头转向时,编程比喻横空出世,且打个酱油再回。
卖萌结束
主角
protocol/delegate之间的爱恨情仇。
小故事
寿寿最近心血来潮,注册了一家公司iceAna,打算搞ios开发,心想:反正现在的公司没业务,一台电脑一个人足以。就这样,代码寿寿写,设计寿寿搞,连拖地烧饭都得自己干!
重要寿寿开发的一款软件得到了上市公司的赏识,立马给了500万投资。寿寿心想,公司要做到看来靠一个人的时代结束了!TM起码先招个人打扫卫生,烧烧饭啊!于是他构思了下,觉得直接正式工太贵了,还是找个兼职的!发布了一则招聘启事,内容如下:
1.会打扫卫生 2.会烧饭做菜 3.会发传真
寿寿想的很远,公司以后要做大,管理一定要做好,于是他决定给这个岗位设定为卫生员…..代号cleaner。就这样招聘发布了好几天,小黄来面试了,经过一番面试,寿寿很满意:他满足招聘启事上所有内容。寿寿告诉他:你这是兼职,但是我要你什么时候来打扫卫生,什么时候来做饭,随叫随到。平常你爱干啥干啥,我就叫你cleaner,行吧!小黄说可以。于是这个合同就这么签订了!
一天寿寿觉得公司乱的要命,也没说名字,直呼“cleaner,来打扫下卫生,扫干净就行,至于怎么扫随便你啦”。小黄接到传唤马上就来打扫卫生了。到了中午,寿寿饿了,通知cleaner:先烧饭。小黄马上烧饭后告诉寿寿搞定了,寿寿又说,烧下菜吧。于是小黄又忙开了。做完这些小黄就自由了 该干嘛干嘛去了!
而寿寿的生活还在继续。
比喻对应关系
- 寿寿:class A
- 小黄:class B
- 招聘启事:protocol xxx:class{}
- cleaner:var weak delegate:xxx?
- 签合同: 在class B中 A.delegate = self class A 中 Self.delegate = B
- 呼叫小黄做事: self.delegate.ToZuoFan() self.delegate.ToTuoDi()
举例代码:
class A内容 都是示意代码 不可运行:
protocol ToDoSomething:class{ func 做饭(controller:A) func 拖地(controller:A)}class A{ var weak delegate:ToDoSomething?//也许发布了招聘启事没人呢 就是nil了 //以下两个函数满足地脏了 和要吃饭了 自动触发! func 地脏了就要清理(){ self.delegate.拖地(self) //self就是类A } func 要吃饭了就要做饭(){ self.delegate.做饭(self) //同上 }}
class B内容 示意代码:
//表示B遵循这个协议 必须要实现来证明他会class B:ToDoSometing{ //B知道A在发布招聘启事 应聘且成功了签订合同 //先取到A对象 A.delegate = self //设定好B就是A的应聘者且签合同 func 做饭(controller:A){ //具体怎么做 怎么烧 烧怎样 B来决定 } func 拖地(controller:A){ //具体怎么打扫为什么它来定 }}
注:
本文纯属瞎比喻,看过请忘记 谢谢!
1 0
- 编程比喻之protocol和delegate之间的关系
- 线程和进程的关系之比喻
- Delegate和protocol的理解
- OC的delegate和protocol
- 快速理解:编程语言 il clr 机器码 操作系统之间的关系,用饮料作比喻
- Checklists学习日志之protocol和delegate的使用
- iOS开发之protocol和delegate
- iOS开发之protocol和delegate
- iOS开发之protocol和delegate
- iOS开发之protocol和delegate
- iOS开发之protocol和delegate
- IOS学习记录之Protocol和delegate
- iOS开发之protocol和delegate
- iOS开发之protocol和delegate
- delegate和protocol
- protocol和delegate
- [iOS]delegate和protocol
- [iOS]delegate和protocol
- poj3320 尺取法
- 周立波语录
- sqlite1-2增 删 改 查方法的简单封装
- 撤销表空间
- C/C++中需要注意的一些问题
- 编程比喻之protocol和delegate之间的关系
- SQL之WHERE子句
- windows下maven导出项目依赖的jar包
- memcpy函数语法 用法 例子______转
- 游戏逻辑层在Lua中的内存泄漏与防范【转】
- [leetcode]14 Excel Sheet Column Title
- 可分配的空间分配
- <mvn:default-servlet-handler/>标签作用
- 八皇后问题(回溯法)