1. 程式人生 > >觀察者模式介紹與理解

觀察者模式介紹與理解

觀察者模式介紹與理解:

觀察者模式原理:類似於定牛奶業務

1. 奶站,subject:登記註冊,移除,通知(register,remove,notify)

2. 使用者,observer:接收輸入

觀察者模式:物件之間多對一依賴的一種設計模式,被依賴的物件稱為subject,依賴的物件為observer,subject發生變化時通知observer物件。

觀察者模式例項演示:

Java內建觀察者:

Observable(類而非介面):已經實現了:註冊移除通知。不能多重繼承。(在通知之前要setChanged())

 

 

Observer(介面)這樣才能多重實現

觀察者模式關鍵點:

1. 鬆耦合:物件之間的關係應該是鬆耦合。物件之間互動的過程屬於鬆耦合狀態,可以相互互動,但是互動的過程中,相互之間不存在依賴關係。

他們之間是非同步的,比如說:不需要對方傳遞過來的物件具體是怎麼實現的。(觀察者模式)Observer和Subject之間互不影響,其中一個崩潰不影響另外一個的正常工作。

2. 高內聚:物件內部之間的關係應該是高內聚的。

3. 隔離影響:發生錯誤或者的異常的時候降低影響。

 

從觀察到通知的轉變:

Observer本來的意思叫做觀察者,但實際上Observer角色並不是主動的去觀察,而是被動的接收來自subject角色的通知。因此,Observer模式也被稱為publish-subscribe模式(釋出-訂閱模式)

Demo請參考:https://github.com/linhj-james/DesignPattern

 

轉載請註明出處!