对象间的交互

2017-08-19  本文已影响0人  时间在改变

1、直白的对象交互

直接传值和调用。

例如A的信息来自于B,这样限制了实现手段的多样性,维护起来容易,但当A的信息不止是来自于B时,就需要深入了解和修改,存在引发其它问题的风险。

2、轻度抽象的对象间交互

多态:

优点:即使不重载基类方法,也有默认实现。

缺点:响应者只能被一个调度者调用。

接口/协议:

优点:能被多个不同调度者调用。

缺点:无法提供默认实现(swift可以提供),可能需要实现不必要去实现的方法。

3、target-action

借助runtime,无视命名域是否完整(不需针对对象或接口提供声明,只需要有target指针和action描述即可)

但失去了编译器检查,必须不经常变动的业务和代码才适用。

4、响应式的对象间交互

调用者无需知道响应者,工程在较低耦合的情况下完成任务。

但响应者必须知道调用者下达了什么样的指令(NotificationName),同时响应式对象交互方案造成跨层数据传递,不利于数据流的控制。

5、基于闭包的对象间交互

闭包可以抓取上下文,跨越命名域传递,从而使得命名域残缺不全的情况下完成对象间交互成为可能。

限制:发起调用的地方和提供回调的地方必须在同一上下文。

缺点:并不一定希望发起调用和提供回调的地方是同一个地方,或者根本不关心回调。

按以下文章做的笔记:

https://casatwy.com/communication_patterns.html

上一篇 下一篇

猜你喜欢

热点阅读