Two 觀察者 observer Pattern
定義
在對(duì)象之間定義一對(duì)多的依賴,當(dāng)一個(gè)對(duì)象改變狀態(tài),依賴它的對(duì)象都會(huì)收到通知吝梅、并自動(dòng)更新虱疏。
可以觀察者自取,也可以主題去推送
其實(shí)就是設(shè)計(jì)兩個(gè)接口苏携。
相關(guān)原則
為交互對(duì)象之前的松耦合設(shè)計(jì)而努力
找出并封裝變化
少用繼承做瞪、多用組合
針對(duì)接口編程、而非實(shí)現(xiàn)右冻。
類圖
手記
封裝變化
封裝主題的狀態(tài)和觀察者的數(shù)目和類型装蓬。
針對(duì)接口,不針對(duì)實(shí)現(xiàn)
觀察者利用主題的接口向主題注冊(cè)纱扭,主題利用觀察者接口通知觀察者牍帚;松耦合。
多用組合乳蛾,少用繼承
利用內(nèi)部interface類型履羞,將許多觀察者組合進(jìn)主題
Observer保存對(duì)Subject的引用時(shí),取消注冊(cè)比較方便屡久。
出版者/主題+訂閱者=觀察者
實(shí)現(xiàn)方式多種,以包含Subject爱榔、Observer接口的類設(shè)計(jì)的做法最為常見被环。
類圖:P52
松耦合的 兩者之間依然可以交互,但是不太清楚彼此的細(xì)節(jié)-->我調(diào)你收我通知的方法详幽,不掉用你具體做事情的方法筛欢。