模板方法模式:定義 一系列演算法, 子類延伸實現。著重點在於:子類去處理不同的方法實現。 看下面例子。
假如乙個支付 都包含三個部分: 生成訂單 ----》呼叫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 區別 模板方法 定義乙個演算法的大綱,而由其子類定義其中某些步驟的內容。而其演算法的個別步驟可以有不同的實現細節。演算法結構依然維持不變。用繼承的方式改變演算法中的具體步驟,依賴程度高,演算法在父類 父類是抽象類 中實現,演算法的具體步驟在子類中實現...