設計模式 黑板模式

2021-10-23 07:43:42 字數 1012 閱讀 4999

黑板模式(blackboard design pattern)是觀察者模式的乙個擴充套件允許訊息的讀寫同時進行,廣泛地互動訊息。

黑板模式允許多個訊息讀寫者同時存在,訊息的生產者和消費者完全分開,兩者在空間和時間上可以解耦,並且互不干擾。

黑板模式是訊息的廣播,主要解決訊息的生產者和消費者之間的耦合問題,核心是訊息儲存(黑板),它儲存所有訊息,並可以隨時被讀取。當然,訊息的寫入者也可以變身為訊息的閱讀者,讀寫者在時間上解耦。對於這些訊息,消費者只需要關注特定訊息,不處理與自己不相關的訊息,這一點通常通過過濾器來實現。

黑板模式常見的有兩種實現方式:資料庫作為黑板訊息佇列作為黑板

(1)資料庫作為黑板

利用資料庫充當黑板,生產者更新資料資訊,不同的消費者共享資料庫中資訊,這是最常見的實現方式。該方式在技術上容易實現,開發量較少,熟悉度較高。缺點是在大量訊息和高頻率訪問的情況下,效能會受到一定影響

在該模式下,訊息的讀取是通過消費者主動「拉取」,因此該模式也叫做「拉模式」。

(2)訊息佇列作為黑板

以訊息佇列作為黑板,通過訂閱-發布模型即可實現黑板模式。這也是黑板模式被淡忘的乙個重要原因:訊息佇列(message queue)已經非常普及了,所有大多人只記得訊息佇列不記得黑板模式。在該模式下,消費者接收到的訊息是被主動推送過來的,因此該模式也稱為「推模式」。

設計模式之黑板模式

黑板模式是觀察者模式的乙個擴充套件,知名度並不高,但使用的範圍卻非常廣.其意圖為 允許訊息的讀寫同時進行,廣泛的互動訊息.簡單的說,黑板模式允許多個訊息讀寫者同時存在,訊息的生產者和消費者完全分開.這就像乙個黑板,任何乙個老師 訊息的生產者 都可以在上面書寫訊息,任何乙個學生 訊息的消費者 都可以從...

設計模式之黑板模式

黑板模式是觀察者模式的乙個擴充套件,知名度並不高,但使用的範圍卻非常廣.其意圖為 允許訊息的讀寫同時進行,廣泛的互動訊息.簡單的說,黑板模式允許多個訊息讀寫者同時存在,訊息的生產者和消費者完全分開.這就像乙個黑板,任何乙個老師 訊息的生產者 都可以在上面書寫訊息,任何乙個學生 訊息的消費者 都可以從...

黑板模式(二十九)

黑板模式 blackboarddesignpattern 是觀察者模式的乙個擴充套件,知名度並不高,但是我們使用的範圍卻非常廣。黑板模式的意圖如下 允許訊息的讀寫同時進行,廣泛地互動訊息。簡單地說,黑板模式允許多個訊息讀寫者同時存在,訊息的生產者和消費者完全分開。這就像乙個黑板,任何乙個教授 訊息的...