對(duì)象間的交互

1、直白的對(duì)象交互

直接傳值和調(diào)用。

例如A的信息來(lái)自于B,這樣限制了實(shí)現(xiàn)手段的多樣性,維護(hù)起來(lái)容易,但當(dāng)A的信息不止是來(lái)自于B時(shí),就需要深入了解和修改,存在引發(fā)其它問(wèn)題的風(fēng)險(xiǎn)。

2、輕度抽象的對(duì)象間交互

多態(tài):

優(yōu)點(diǎn):即使不重載基類(lèi)方法,也有默認(rèn)實(shí)現(xiàn)。

缺點(diǎn):響應(yīng)者只能被一個(gè)調(diào)度者調(diào)用。

接口/協(xié)議:

優(yōu)點(diǎn):能被多個(gè)不同調(diào)度者調(diào)用。

缺點(diǎn):無(wú)法提供默認(rèn)實(shí)現(xiàn)(swift可以提供),可能需要實(shí)現(xiàn)不必要去實(shí)現(xiàn)的方法。

3、target-action

借助runtime,無(wú)視命名域是否完整(不需針對(duì)對(duì)象或接口提供聲明,只需要有target指針和action描述即可)

但失去了編譯器檢查,必須不經(jīng)常變動(dòng)的業(yè)務(wù)和代碼才適用。

4、響應(yīng)式的對(duì)象間交互

調(diào)用者無(wú)需知道響應(yīng)者,工程在較低耦合的情況下完成任務(wù)。

但響應(yīng)者必須知道調(diào)用者下達(dá)了什么樣的指令(NotificationName),同時(shí)響應(yīng)式對(duì)象交互方案造成跨層數(shù)據(jù)傳遞,不利于數(shù)據(jù)流的控制。

5、基于閉包的對(duì)象間交互

閉包可以抓取上下文,跨越命名域傳遞,從而使得命名域殘缺不全的情況下完成對(duì)象間交互成為可能。

限制:發(fā)起調(diào)用的地方和提供回調(diào)的地方必須在同一上下文。

缺點(diǎn):并不一定希望發(fā)起調(diào)用和提供回調(diào)的地方是同一個(gè)地方,或者根本不關(guān)心回調(diào)。


按以下文章做的筆記:

https://casatwy.com/communication_patterns.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,586評(píng)論 19 139
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,111評(píng)論 25 709
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類(lèi)相關(guān)的語(yǔ)法,內(nèi)部類(lèi)的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 34,734評(píng)論 18 399
  • 帶著忐忑,帶著渴望,敘說(shuō)自己此刻內(nèi)心的矛盾。 天已經(jīng)暗下來(lái)了,雨也沒(méi)有要停的意思,盡管并不能夠阻擋我去做什...
    素顏淡淡閱讀 192評(píng)論 0 0
  • **目錄 | **《一位成人可以在廚房做的100個(gè)實(shí)驗(yàn)》目錄**上一篇 | **如此簡(jiǎn)單,做一罐香草糖|-002 ...
    梧薌閱讀 7,027評(píng)論 16 119

友情鏈接更多精彩內(nèi)容