十二 觀察者模式

2021-08-31 22:21:25 字數 773 閱讀 9264

觀察者模式,定義了一種一對多的依賴關係,讓多個觀察者物件同時監聽某乙個主題物件。這個主題物件在狀態發生變化時,會通知所有觀察者物件,使他們能夠自動更新自己。

subject

public class subject 

public void detach()

public void notify()

}}

observer

public class observer 

}

concretesubject

public class concretesubject extends subject 

public string getsubjectstate()

}

concreteobserver

public class concreteobserver extends observer 	

public void setsubject(concretesubject subject)

public concretesubject getsubject()

public void update()

}

client

class client 

}

當乙個物件的改變需要通知其他物件的時候,並且他不知道有多少個物件需要改變的時候,應該考慮使用觀察者模式。

設計模式(十二)觀察者模式

觀察者模式 observer 又叫做發布訂閱模式 publish subscibe 觀察者模式定義了一種一對多的依賴關係,讓讀個觀察者物件同時監聽某乙個主題物件。這個主題物件在狀態發生變化時,會通知所有觀察者物件,使他們能夠自動更新自己。移除觀察者 public void detach observ...

設計模式(十二) 觀察者模式

優點 觀察者模式在被觀察者和觀察者之間建立乙個抽象的耦合。被觀察者角色所知道的只是乙個具體觀察者列表,每乙個具體觀察者都符合乙個抽象觀察者的介面。被觀察者並不認識任何乙個具體觀察者,它只知道它們都有乙個共同的介面。缺點 如果在被觀察者之間有迴圈依賴的話,被觀察者會觸發它們之間進行迴圈呼叫,導致系統崩...

python觀察者模式 python 觀察者模式

python 觀察者模式 前言e 寫的倉促就不截uml類圖了,書本chapter10,p313能看到圖 一旦觀察的主題有更新,就會通知到觀察者們,下面的例子是最簡單的乙個觀察者範例,假設這是一群投機分子密切關注 軍 火 倉庫的產品與數量變動 class inventory def init self...