Aha!設計模式 108 行為模式討論

2021-09-25 14:33:35 字數 810 閱讀 8422

不同的資訊傳遞路徑

當多個節點之間需要通訊時,如果是在各個節點之間建立通訊渠道,會導致通訊渠道的幾何級數增加。這時使用mediator設計模式提供乙個通訊的中心節點,可以有效地防止通訊渠道的複雜化。這時的通訊拓撲結構可以認為是乙個星型結構。在這種情況下,有且只有中心節點和所有通訊物件,都存在耦合關係。

使用observer設計模式可以提供乙個一對多的通訊渠道。只要觀察者事先進行登入,就可以以一種非耦合的方式建立合適的通訊渠道。這時的通訊拓撲結構是一種扇形結構。

職責鏈模式經常會依附於某個已知的資料結構,例如樹狀機構。資訊可以按照事先約定的原則沿著乙個鏈狀路徑傳播。傳播路徑上的節點可以選擇處理這個訊息,也可以將該訊息繼續傳播。

命令還是策略

無論是結構圖還是**,命令和策略模式都具有很大的相似性。策略模式的含義可以從名稱窺探一二。策略應該看作是達成同乙個目的的不同方法,而命令則意味著連做什麼事情都不同了。還有一點,由於目的的一致性,策略模式需要的資訊也會大致相同。而命令模式由於目的之間沒有必然的關係,必然導致處理所需的資訊也會存在很大的不同。另外,命令模式可能還意味著請求的傳遞和處理是存在分工的。

狀態和訪問者

無論是從使用場景還是模式結構,這兩個模式都存在著很大的不同。它們的相似之處是二者都是對既有**結構的重構。狀態模式將被各種條件判斷分離的處理內容集中在乙個狀態類中,而訪問者模式是將完成同乙個任務的針對不同物件的操作集中在同乙個訪問者類中。二者共同的好處是增強了擴充套件性;共通的缺點是分割了原有的處理流程,理解起來會多費一些周折。這是一種更高層次的相似性,其中的想法很值得理解和借鑑。

設計模式 四 行為型模式

1 命令模式 是一種資料驅動的設計模式,屬於行為型模式。請求以命令的形式包裹在物件中,並傳給呼叫物件。呼叫物件尋找可以處理該明林的適合的物件,並把該命令傳給相應的物件,該物件執行命令。建立乙個命令介面 public inte ce order建立乙個請求類 public class stock pu...

設計模式21 行為型模式之狀態模式

定義 狀態模式 state pattern 允許乙個物件在其內部狀態改變時改變它的行為。物件看起來似乎修改了它的類。型別 物件行為型模式 概述 乙個物件有乙個狀態,那麼每乙個狀態又對應一些相應的行為。如果這個物件有很多狀態,那麼就要對應非常多的行為。那麼對這些狀態的判斷以及根據狀態完成相應的行為,會...

設計模式 13 行為型模式之 模板模式

模板,就是方案的固定格式,一般都要遵循這麼個步驟去幹。比如你請假,你需要 填寫請假條,領導1簽字 領導2簽字,這麼三個步驟。這個就叫模板,就是這麼乙個固定的流程。具體你請假條寫的啥,這個不關心。在模板模式 template pattern 中,乙個抽象類公開定義了執行它的方法的方式 模板。它的子類可...