不同的資訊傳遞路徑
當多個節點之間需要通信時,如果是在各個節點之間建立通訊管道,會導緻通信管道的幾何級數增加。這時使用Mediator設計模式提供一個通信的中心節點,可以有效地防止通信管道的複雜化。這時的通信拓撲結構可以認為是一個星型結構。在這種情況下,有且隻有中心節點和所有通信對象,都存在耦合關系。
使用Observer設計模式可以提供一個一對多的通信管道。隻要觀察者事先進行登入,就可以以一種非耦合的方式建立合适的通信管道。這時的通信拓撲結構是一種扇形結構。
職責鍊模式經常會依附于某個已知的資料結構,例如樹狀機構。資訊可以按照事先約定的原則沿着一個鍊狀路徑傳播。傳播路徑上的節點可以選擇處理這個消息,也可以将該消息繼續傳播。
指令還是政策
無論是結構圖還是代碼,指令和政策模式都具有很大的相似性。政策模式的含義可以從名稱窺探一二。政策應該看作是達成同一個目的的不同方法,而指令則意味着連做什麼事情都不同了。還有一點,由于目的的一緻性,政策模式需要的資訊也會大緻相同。而指令模式由于目的之間沒有必然的關系,必然導緻處理所需的資訊也會存在很大的不同。另外,指令模式可能還意味着請求的傳遞和處理是存在分工的。
狀态和通路者
無論是從使用場景還是模式結構,這兩個模式都存在着很大的不同。它們的相似之處是二者都是對既有代碼結構的重構。狀态模式将被各種條件判斷分離的處理内容集中在一個狀态類中,而通路者模式是将完成同一個任務的針對不同對象的操作集中在同一個通路者類中。二者共同的好處是增強了擴充性;共通的缺點是分割了原有的處理流程,了解起來會多費一些周折。這是一種更高層次的相似性,其中的想法很值得了解和借鑒。