GO設計模式2 觀察者模式

2021-08-28 19:32:03 字數 948 閱讀 5601

在物件之間定義了一對多的依賴,這樣一來,當乙個物件改變狀態,依賴它的物件會收到通知並自動更新。其實就是發布訂閱模式,發布者發布資訊,訂閱者獲取資訊,訂閱了就能收到資訊,沒訂閱就收不到資訊。

type observer inte***ce
type oneobserver struct

func (this *oneobserver) notify(param string)

type twoobserver struct

func (this *twoobserver) notify(param string)

type notifier struct 

func newnotifier() *notifier

}//加入

func (this *notifier) register(observer observer)

//退出

func (this *notifier) degister(observer observer)

} this.observers=observers

}//通知

func (this *notifier) notify(param string)

}

one:=&oneobserver{}

two:=&twoobserver{}

notifer:=newnotifier()

notifer.register(one)//加入one

notifer.register(two)//加入two

notifer.notify("1")

notifer.degister(one)//退出one

notifer.notify("2")

設計模式 觀察者模式(2)

被觀察物件向觀察者推送主題的詳情資訊時候,不管觀察者是否需要,這些資訊一般是觀察目標物件的全部或者部分資訊。一般這種模型實現通過update object obj 將觀察目標物件傳入進去。被觀察物件通知觀察者時候,只傳送少量的資訊,如果需要詳情資訊時候,被觀察物件也就是觀察目標物件主動到觀察者當中,...

設計模式 觀察者模式2

觀察者模式 一.概念 傳統理解 觀察者模式 有時又被稱為發布 publish 觀察者模式 observer 完美的將觀察者和被觀察的物件分離開。舉個例子,使用者介面可以作為乙個觀察者,業務資料是被觀察者,使用者介面觀察業務資料的變化,發現資料變化後,就顯示在介面上。物件導向設計的乙個原則是 系統中的...

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

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