日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Observer(观察者)--对象行为型模式

發布時間:2023/12/4 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Observer(观察者)--对象行为型模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Observer(觀察者)–對象行為型模式

一、意圖
定義對象間的一種一對多的依賴關系,當一個對象的狀態發生變化時,所有的依賴于它的對象都得到通知并被自動更新。

二、動機
1.在軟件構建過程中,我們需要為某些對象建立一種“通知依賴關系” ——一個對象(目標對象)的狀態發生改變,所有的依賴對象(觀察者對象)都將得到通知。如果這樣的依賴關系過于緊密, 將使軟件不能很好地抵御變化。
2.使用面向對象技術,可以將這種依賴關系弱化,并形成一種穩定的依賴關系。從而實現軟件體系結構的松耦合。

三、適用性
1.當一個抽象模型有兩個方面,其中一個方面依賴于另一個方面。將這二者封裝在獨立的對象中以使他們可以各自獨立地改變和復用。
2.當一個對象的改變需要同時改變其他對象,而不知道具體有多少對象有待改變。
3.當一個對象必須通知其他對象,而它又不能假定其他對象是誰。換言之,你不希望這些對象是緊密耦合的。

四、結構

五、效果
1.目標和觀察者間的抽象耦合。
2.支持廣播通信。
3.意外的更新。

六、實現
1.創建目標到其他觀察者之間的映射。
2.觀察多個目標。
3.誰觸發更新。
4.對已刪除目標的懸掛引用。
5.在發出通知前確保目標的狀態自身是一致的。
6.避免特定于觀察者的更新協議——推、拉模型
7.顯式地指定感興趣的改變。
8.封裝復雜的更新語義。
9.結合目標類和觀察者類。

七、要點總結
1.使用面向對象的抽象,Observer模式使得我們可以獨立地改變目標與觀察者,從而使二者之間的依賴關系達致松耦合。
2.目標發送通知時,無需指定觀察者,通知(可以攜帶通知信息作為參數)會自動傳播。
3.觀察者自己決定是否需要訂閱通知,目標對象對此一無所知。
4.Observer模式是基于事件的UI框架中非常常用的設計模式,也是 MVC模式的一個重要組成部分。

八、相關模式
Mediator:通過封裝復雜的更新語義,ChangManager充當目標和觀察者之間的中介者。
Singleton:ChangeManager可使用Singleton模式來保證它是唯一的并且可全局訪問的。

九、舉例說明
把你們家電總閘關了,所有的電器都不工作了(有帶備用電池的除外),他們都是一個個觀察者。

本文為李建忠設計模式視頻的筆記以及《設計模式-可復用面向對象的軟件的基礎》和自己的部分見解

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的Observer(观察者)--对象行为型模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。