觀察者模式和EventBus

2021-09-18 04:03:22 字數 1137 閱讀 5876

在熟悉一些專案的時候,發現專案中的一些設計模式,之後會慢慢寫。這裡就寫專案中的觀察者的使用。

觀察者模式在被觀察者和觀察者之間建立乙個抽象的耦合。被觀察者角色所知道的只是乙個具體觀察者列表,每乙個具體觀察者都符合乙個抽象觀察者的介面。被觀察者並不認識任何乙個具體觀察者,它只知道它們都有乙個共同的介面。

關於觀察者模式,之前寫過見

這裡介紹一下eventbus的使用

訊息定義

@data

@builder

public

class

message

}

訊息分發

public

class

dispatcher

public

void

dispatcher

(message message)

}

訊息接收並處理

public

class

subscriber

", message));

}}@subscribe

public

void

update

(message message)

", message));

}}}

測試

public

class

dispatchertest

/** * output: the create message is message(name=hello, content=world, type=create)

*/@test

public

void

createmessagetest()

/** * output: the update message is message(name=hello, content=world, type=update)

*/@test

public

void

updatemessagetest()

}

具體見demo原始碼見

觀察者模式之EventBus原始碼解析

1 觀察者模式概述 觀察者模式 observer pattern 定義物件之間的一種一對多依賴關係,使得每當乙個物件狀態發生改變時,其相關依賴物件皆得到通知並自動更新。觀察者模式的別名包括發布 訂閱 publish subscribe 模式 模型 檢視 model view 模式。觀察者模式是一種物...

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

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

觀察者模式

觀察者模式 observer 完美的將觀察者和被觀察的物件分離開。舉個例子,使用者介面可以作為乙個觀察者,業務資料是被觀察者,使用者介面觀察業務資料的變化,發現資料變化後,就顯示在介面上。物件導向設計的乙個原則是 系統中的每個類將重點放在某乙個功能上,而不是其他方面。乙個物件只做一件事情,並且將他做...