模板方法模式 策略模式區別聯絡

2022-05-11 02:57:41 字數 2428 閱讀 6634

模板方法模式:定義 一系列演算法, 子類延伸實現。著重點在於:子類去處理不同的方法實現。 看下面例子。

假如乙個支付 都包含三個部分: 生成訂單 ----》呼叫api發起支付-----------》處理訂單

/*** 〈購物流程〉

* 〈模板方法基類〉

* * @authorliangxing.zhu

* @create 2018/9/15

* @since1.0.0

*/public abstract classabstractpay

/*** 2、呼叫api 發起支付

*/abstract voidpay();

/*** 3 **介面,處理訂單, 給使用者加餘額

*/abstract voidhandleorder();

}

* * @authorliangxing.zhu

* @create 2018/9/15

* @since1.0.0

*/public class wxpay extendsabstractpay

/*** 3 **介面,處理訂單, 給使用者加餘額

*/@override

voidhandleorder()

}

/*** 〈一句話功能簡述〉

* 〈支付寶支付〉

* * @authorliangxing.zhu

* @create 2018/9/15

* @since1.0.0

*/public class alipay extendsabstractpay

/*** 3 **介面,處理訂單, 給使用者加餘額

*/@override

voidhandleorder()

}

/*** 〈一句話功能簡述〉

* 〈測試 類〉

* * @authorliangxing.zhu

* @create 2018/9/15

* @since1.0.0

*/public classtestpay

}

正在生成業務方訂單

呼叫支付寶api發起支付

處理支付寶**。 查詢訂單是否處理完成

我是分割線******************************》

正在生成業務方訂單

模板方法主要體現在子類的分別實現。

用之前的模板方法模式幾個類。

/*** 〈購物流程〉

* 〈模板方法基類〉

* * @authorliangxing.zhu

* @create 2018/9/15

* @since1.0.0

*/public abstract classabstractpay

/*** 2、呼叫api 發起支付

*/abstract voidpay();

/*** 3 **介面,處理訂單, 給使用者加餘額

*/abstract voidhandleorder();

}

* * @authorliangxing.zhu

* @create 2018/9/15

* @since1.0.0

*/public class wxpay extendsabstractpay

/*** 3 **介面,處理訂單, 給使用者加餘額

*/@override

voidhandleorder()

}

/*** 〈一句話功能簡述〉

* 〈支付寶支付〉

* * @authorliangxing.zhu

* @create 2018/9/15

* @since1.0.0

*/public class alipay extendsabstractpay

/*** 3 **介面,處理訂單, 給使用者加餘額

*/@override

voidhandleorder()

}

/*** 〈一句話功能簡述〉

* 〈測試 類〉

* * @authorliangxing.zhu

* @create 2018/9/15

* @since1.0.0

*/public classtestpay else if(day%2==0)

abstractpay.genrateorder();

abstractpay.pay();

abstractpay.handleorder();

}}

策略開始。今天的時間是星期:6,使用的支付方式是:wxpay

正在生成業務方訂單

策略模式 核心在 使用者的策略。 如果按照自己的策略去替換。模板方法模式 核心在 子類的 怎麼實現。

模板方法模式 策略模式 的 聯絡 區別和應用場景

介紹和實現 策略模式的結構其實非常簡單,比模板方法模式簡單多了,它實質上就是乙個原則的體現,往低裡說就是裡式替換原則,往高裡說是依賴倒置原則,具體實現過程是這樣 有乙個介面a中有乙個抽象演算法方法a 有一組介面a的實現類a 用不同具體演算法實現了抽象演算法方法a 在客戶端裡先持有乙個演算法介面的引用...

模板模式同策略模式區別

模板方法 同 strategry pattern 區別 模板方法 定義乙個演算法的大綱,而由其子類定義其中某些步驟的內容。而其演算法的個別步驟可以有不同的實現細節。演算法結構依然維持不變。用繼承的方式改變演算法中的具體步驟,依賴程度高,演算法在父類 父類是抽象類 中實現,演算法的具體步驟在子類中實現...

模板模式同策略模式區別

模板方法 同 strategry pattern 區別 模板方法 定義乙個演算法的大綱,而由其子類定義其中某些步驟的內容。而其演算法的個別步驟可以有不同的實現細節。演算法結構依然維持不變。用繼承的方式改變演算法中的具體步驟,依賴程度高,演算法在父類 父類是抽象類 中實現,演算法的具體步驟在子類中實現...