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

2021-08-31 16:32:50 字數 765 閱讀 2809

觀察者模式(observer)又叫做發布訂閱模式(publish/subscibe)

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

//移除觀察者

public void detach(observer observer)

//通知

public void notifyobserver()

}}public abstract class observer

public class concretesubject extends subject

public void setsubjectstate(string subjectstate)

}public class concreteobserver extends observer

@override

public void update()

public concretesubject getsubject()

public void setsubject(concretesubject subject)

}public class main

}

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

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

十二 觀察者模式

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

python 設計模式 觀察者 觀察者設計模式

在觀察者設計模式這種模式中,物件被表示為等待事件觸發的觀察者。一旦發生指定的事件,觀察者就會關注該主體。當事件發生時,主體告訴觀察者它已經發生。以下uml圖表示觀察者模式 如何實現觀察者模式?現在讓我們來看看如何實現觀察者模式。參考以下實現 import threading import time ...