工廠與職責鏈模式

2021-04-14 02:32:13 字數 783 閱讀 9085

工廠與職責鏈模式

這週做的乙個模組把工廠模式與職責鏈模式糅合在一起了,工廠模式用來解決通過解析輸入的資訊返回乙個符合的類,職責鏈模式則負責選取的過程。

工廠模式應該是最簡單也可能用的最多的模式,用來根據需要返回特定的類,職責鏈用於從多個處理類中選取乙個合適的類來處理,根據鏈依次傳遞,直到正確處理為止,處理完後就沿途返回。

問題定義: 有一大堆的演算法,演算法是用來處理波形資料的(乙個大的陣列),每個演算法處理器有自己的引數與處理行為,因此為每種演算法定義乙個處理器,負責引數輸入與處理,以及引數載入與輸出,用於記住演算法處理器的狀態,要利用職責鏈模式,必須定義職責鏈基類或介面,這裡採用基類更合適,因為可以提供一些基礎**,以免每個職責內都寫同樣的**。

職責鏈跟鍊錶類似,每個節點都知道下個節點是什麼,至於上個節點是什麼,沒必要知道,因此定義以下基類,這裡只給出介面。

public inte***ce ichain

ichain getchain

}然後使得每個處理器都出繼承子ichain介面,然後建立乙個工廠類,鏈結所有處理器,然後從職責鏈傳入需要的引數,就可正確處理了。

使用職責鏈模式可以減少判斷分支結構的使用,if,switch語句。使用工廠模式可以免去該如何從多個可用型別建立需要的型別。

比如對於乙個檔案,根據檔案型別(副檔名)的不同,處理方式就不同,,**,文字等多種型別,這樣就可以為每種型別的處理過程建立乙個職責,串成職責鏈,通過傳入檔名,依次在職責鏈中傳遞知道正確處理為止。

設計模式應用的好,可以提高**的可讀性和可申縮性,可惜我雖然看了好幾遍,能用好的模式也沒多少,數的出來,有待加強。

職責鏈模式

1.職責鏈 namespace dutychainpattern 用來處理請求 public abstract void transmitrequest int request 班主任 職責鏈上的乙個節點,在裡面進行判斷,看能否處理請求,不能則將請求轉移 public class classadvi...

職責鏈模式

軟體領域中的設計模式為開發人員提供了一種使用專家設計經驗的有效途徑。設計模式中運用了物件導向程式設計語言的重要特性 封裝 繼承 多型,真正領悟設計模式的精髓是可能乙個漫長的過程,需要大量實踐經驗的積累。最近看設計模式的書,對於每個模式,用c 寫了個小例子,加深一下理解。主要參考 大話設計模式 和 設...

職責鏈模式

劇情簡要 學習此模式,讓筆者聯想到自然界的生物鏈。打個比方 大魚吃小魚,小魚吃蝦公尺。河裡的小蝦公尺問大魚,你要不要吃我啊?大魚說 你太小了,吃了 沒吃,return 懶得吃!然後蝦公尺又問小魚 小螃蟹 小河馬同樣的問題。其實如果小蝦公尺這麼想自我了結的話,根本不用這麼費勁。這就開始了我們職責鏈模式...