template method模式
我們講的前面很多模式的思路都是使用組合,而不用繼承。並且也提到了乙個設計原則「優先使用組合」。但是這個模式就是乙個使用繼承來解決問題的思路。畢竟,繼承也不是一無是處。
在有些系統中,乙個事務的完成需要通過一系列的步驟,就是第一步幹什麼,第二步幹什麼。這個步驟的序列是固定的(就是行業標準流程),並且在將來也不會改變,也沒必要改變。但是每一步的具體實現對不同平台確有不同的實現方法。這一系列的步驟就像乙個行業標準,而每一步如何完成,就給各個廠商發揮自己的特長。這時候使用template method模式將更有效。
具體實現過程如下:
class abstractclass
private:
viture int primitiveoperation1();
viture int primitiveoperation2();
viture int primitiveoperation3();
}class concreteclass
viture int primitiveoperation2()
viture int primitiveoperation3()
}這個模式的關鍵在於,事務的完成一定是乙個標準化得流程,它的變化部分是流程中每乙個小的步驟,其大的框架不會也沒必要改變。這樣做的好處在於,標準化得流程在基類中定義,確保了流程的完整性,即你不會遺漏任何乙個小的步驟。
設計模式 6 裝飾模式
裝飾是一種概念設計模式,允許你通過將物件放入特殊封裝物件中來為原物件增加新的行為 public inte ce datasource介面預設實現類 public class filedatasource implements datasource override public void write...
設計模式 6 策略模式
時勢造英雄 策略模式。strategy模式可以整體的替換演算法。策略模式的特點是整體替換,也就是說會有幾個地位並列的邏輯,可以隨時被選擇,他們的功能可以完全相同但是實現不同,也可以是功能不同。1 context 呼叫策略介面方法的環境類 他會維護乙個strategy的引用,用於呼叫實際的介面方法 2...
設計模式總結(6)
抽象工廠模式是對工廠模式的 抽象 負責建立實現類的工廠 從底層向上,首先建立兩個不同功能的介面,所有具體的實現類都是實現這兩個介面 inte ce shape inte ce color 建立實現這些介面的具體實現類 class rectangle implements shape class sq...