iOS开发中First Responser,protocol实现的deleagere,通知机制的设计

1.first responser是response chain中的第一响应者,若是该响应者可以执行此响应(action),则次相遇不会继续在响应链中向上层传递,若是不能则会继续在响应链中继续传递,直到完成(可能最后也不能响应) spa

2.protocol实现的deleagere,这个就是1对1的传递某个action 设计

3.通知就是1对多的传递某个action(至关于订阅) 对象

那么区别在哪里呢? io

如图,咱们能够把view的层级,或者说view controller 的层级

1.我的以为若是是D-》B这样的从下到上的调用,那么能够使用delegate im

2.若是是E->F,F->E这样的调用,最好用通知机制,由于你很难获取到你通知对象的实例,就算可以,你的设计上也会很杂乱 img

3.若是是D-》A这样的调用,最好就用到response chain,固然也能够用通知,可是通知是1对多的,若是其余人恰好也使用了,那么就可能和你当初的设计初衷就不同了,若是使用的是first responser,那么你的响应只会在你当前的response chain中传递,不会传递到未知的地方去了。特别是在你的层级之间很复杂或者根本没法判断出中间层级有什么界面的时候,response chain就是一种很好的设计方式了 view

相关文章
相关标签/搜索