亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

觀察者模式

GerryZhang JAVA開發工程師
難度中級
時長 1小時56分
學習人數
綜合評分9.53
113人評價 查看評價
9.7 內容實用
9.6 簡潔易懂
9.3 邏輯清晰
  • Java 實現 VS 自己實現的對比4點 (1)不需要再定義觀察者和目標接口(JDK已經定義) (2)具體的目標實現里面不需要再維護觀察者的注冊信息,Java中的Observable類里面已經實現 (3)觸發通知的方式有一點變化,要先調用setChanged方法,這個是Java為了幫助實現更精確的觸發控制而提供的功能。 (4)具體觀察者的實現里面,update方法其實能同時支持推模型和拉模型,這個Java在定義的時候,已經考慮
    查看全部
  • 利用Java提供的觀察者實現---- java.util包中 Observable類,接口Oberver中的update()方法
    查看全部
  • (3)推模型會使觀察者對象難以復用;拉模型下,update方法的參數是目標對象本身,基本上可以適應各種情況的需要。
    查看全部
  • 推模型 VS 拉模型 (1)推模型是假定目標對象知道觀察者需要的數據 (2)拉模型是目標對象不知道觀察者具體需要什么數據,因此把自身傳給觀察者,由觀察者來取值
    查看全部
  • 一般這種拉模型的實現中,會把目標對象自身通過update方法傳遞給觀察者
    查看全部
  • 觀察者模式 3.2 實現的 2 種方式:推模型 & 拉模型 (1)推模型:目標對象主動向觀察者推送目標的詳細信息。推送的信息通常是目標對象的全部或部分數據。 (2)拉模型:目標對象在通知觀察者的時候,只傳遞少量信息。如果觀察者需要更具體的信息,由觀察者主動到目標對象中獲取,相當于是觀察者從目標對象中拉數據。
    查看全部
  • 觀察者模式又被稱為發布訂閱模式: 命名建議: (1)目標接口的定義,建議在名稱后面跟Subject (2)觀察者接口的定義,建議在名稱后面跟Observer (3)觀察者接口的更新方法,建議名稱為update,參數的個數及類型不受限制
    查看全部
  • 觀察者模式--3.1 認識觀察者模式 (1)目標與觀察者之間的關系 (2)單向依賴 (3)命名建議 (4)觸發通知的時機 (5)觀察者模式的調用順序示意圖 (6)通知的順序
    查看全部
  • 學習觀察者模式通用代碼 步驟: (1)目標對象的定義 (2)具體的目標對象的定義 (3)觀察者接口的定義 (4)觀察者的具體實現
    查看全部
  • 觀察者模式的定義: 定義對象間的一種一對多的依賴關系。當一個對象的狀態發生改變時,所有依賴于它的對象都得到通知并被自動更新。
    查看全部
    1 采集 收起 來源:課程簡介

    2016-02-23

  • 牽一發而動全身
    查看全部
  • 觀察者的優缺點: 優點: 1、實現了觀察者和目標之間的抽象耦合;目標只知道觀察者接口,不知道觀察者具體類; 2、實現了動態聯動,控制聯動范圍; 3、支持廣播通信,對注冊的目標廣播,可添加限制廣播的范圍 缺點: 可能引起無謂的操作,如果觀察者不需要處理,也update,性能下降或誤操作,設計模式三十六計,需要用計謀的人熟練。 “觸發聯動”, 本質,觸發相應通知,循環調用所有觀察者的方法。 何時選用觀察者模式? 1、一個抽象模型兩個方面,其中一個方面的操作依賴另一個方面的狀態變化,則讓它們獨立開來 2、更改一個對象時,需要同時連帶改變其他對象,且不知道究竟有多少對象需要被連帶改變,則被連帶修改的當做是多個觀察者對象 3、當一個對象必須通知其他對象,但又希望它和被通知對象是松散耦合,即不想知道被通知的對象,則這個對象是目標對象,其他是觀察者。 后續: 觀察者的高級部分、變形,與其他部分的結合使用
    查看全部
  • 用java中已有的功能來實現觀察者模式非常簡單,與自己定義相比,有四點: 1、不需要再定義觀察者和目標的接口了(接口回調還是需要的),JDK幫忙定義了; 2、具體目標實現里面不需要再維護觀察者的注冊信息了(不需要attach和detach),在Java中的Observable類里面已經幫忙實現好了; 3、觸發通知的方式有一點變化,要先調用setChanged方法,是Java為了幫助實現更精確觸發控制而提高的功能(現在已經Android6.0了,這個方法還存在嗎,得參看最新SPI); 4、具體觀察者的實現里面,update方法其實能同時支持推模型和拉模型,Java在定義時已經考慮。
    查看全部
  • 推模型假定目標對象知道觀察者需要的數據是什么; 拉模型是目標對象不知道觀察者具體需要什么數據,把目標整個傳給觀察者,讓它自取。 推模型使得觀察者難以復用,可能存在目標對象沒有考慮到的方面,從而需要定義新的update方法,或需要重新實現觀察者。 拉模型,由于傳的參數是本身,可以讓觀察者各取所需。
    查看全部
  • 推模型: 目標對象主動向觀察者推送目標的詳細信息,相當于廣播信息; 推送的信息通常是目標對象的全部或部分數據。 拉模型: 目標對象在通知觀察者的時候,只傳遞少量信息; 如果觀察者需要更具體的信息,由觀察者主動到目標對象中獲取,相當于是觀察者從目標對象中拉數據。 一般拉模型實現中,會把目標對象自身通過update方法傳遞給觀察者。觀察者需要獲取數據時,通過對目標的引用來獲取。 拉模型中(上節介紹的),update中傳入了WeatherSubject的引用; 推模型中,根據需要來填入數據,觀察者達到按需取內容,目標類可以修改notifyObservers的參數來按需推送內容,在Subject中修改了notifyObservers后要在Subject的子類中setContent的引用notifyObserver時對應修改參數。
    查看全部

舉報

0/150
提交
取消
課程須知
學習本課程前,需要具備Java基礎,面向對象的程序設計思想。如果對這些知識不熟悉,可以學習《Java入門第一季》和《Java入門第二季》這兩門課程。
老師告訴你能學到什么?
1、理解觀察者模式的概念和結構 2、掌握如何將觀察者模式應用到項目中,解決項目實際問題 3、掌握觀察者模式的應用場景

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!