觀察這模式的學習

2021-08-05 23:28:12 字數 923 閱讀 8713

設計模式:觀察者模式

什麼是觀察者模式:

定義物件間一對多的依賴關係,當乙個物件的狀態發生改變時,所有依賴於

它的物件都得到通知自動更新。 

示例:gui程式設計中的add***xlistener都是觀察者模式。

觀察者模式的三個重要類:

註冊乙個*** listener

事件對像

event測試類---初始化事件源  註冊***  使用事件對像

開發步驟:

* 第一步:實現乙個需要被監聽的類person.(被監聽者)

* 第二步:實現乙個監聽介面personlistener(註冊乙個***listener)

* 第三步:在person類中,提供乙個方法用於註冊personlistener類,即registerlistener

* 第四步:必須要在person類中維護personlistener類的例項。

* 第五步:在呼叫person中的方法時,判斷personlistener是否為null,如果不為null則呼叫它

對應的方法。

* 第六步:在測試中,例項化person,並註冊乙個監聽。

**演示

public class person

if(listener!=null)

}public void addpersonlistener(personlistener l)

}inte***ce personlistener

class personevent

public person getsource()   }

測試類public class client

public static void main(string args)

class myclass implements personlistener   }    }   }

設計模式之觀察這模式

觀察者模式 既關注的主題發生變化通知觀察者 實現方式 兩個介面 1 主題介面 包含新增 刪除觀察者以及通知觀察者更新資料的方法 2 觀察者介面 規定具體觀察者用來更新資料的方法 介面實現 1 主題介面實現 實現主題介面的乙個例項,通常需要使用乙個集合arraylist存放觀察者引用,以便資料變化時通...

學習設計模式 觀察者模式

說明 觀察者模式就是有兩個角色,乙個觀察者 乙個通知者,兩者的關係是多對一。當某個是事件觸發時,通知者通知觀察者去處理相應的事件。為了解耦合,需要將兩個角色都先抽象,然後再定義具體的實現類。缺點 需要所有觀察者處理相應事件名稱一致 需求 學生自習的時候開小差,需要代表時刻觀察老師是否來了,如果來了,...

設計模式學習 觀察者模式

定義 定義物件間一種一對多的依賴關係,使得每當乙個物件發生變化時,則所有依賴於他的物件都會得到通知並自動更新。使用場景 特點 實現物件的解耦,將觀察者和被觀察者完全隔離,只依賴於observe和observable抽象。簡單實現例子 抽象觀察者類,為所有具體觀察者定義乙個介面,在得到通知時更新自己 ...