引言
所屬:行為型模式,常用設計模式之一
學習資料:
模式概述
分享一篇關於策略模式講的很好的文章,大家可以參考一下:
策略模式就是用來封裝演算法的,但在實踐中,我們發現可以用它來封裝幾乎任何型別的規則,只要在分析過程中聽到需要在不同時間應用不同的業務規則,就可以考慮使用策略模式處理這種變化的可能性。
舉個栗子
超市**活動,分別有原價,八折,滿300減50,使用策略模式……,程式如何設計。
流程圖如下:
程式設計**:
1. 抽象活動演算法類
<?php /**2. 具體演算法產品類* 抽象活動演算法類 */
namespace strategy;
abstract
class
strategyabstract
<?php /*** 滿減演算法產品類 */
namespace strategy;
class manjianstrategy extends
strategyabstract
}
<?php /**3. 策略工廠類* 打折演算法產品類 */
namespace strategy;
class dazhestrategy extends
strategyabstract
}
<?php /**入口檔案* 策略工廠類 */
namespace strategy;
class
strategyfind
/*** 執行打折演算法
* @param $money
*/public
function get($money
)
}
<?php以下為原始碼地址namespace strategy;
include '../autoload.php';
//滿減折算
$mode1 = new strategyfind(new
manjianstrategy());
$mode1->get(100);
echo '
';//
滿減活動
$mode2= new strategyfind(new
dazhestrategy());
$mode2->get(100);
總結策略模式就是使用封裝一個公共抽象演算法,每個演算法(比如,打折演算法,滿減演算法)實現這個介面,然後搞個策略工廠類來呼叫這些演算法。
PHP設計模式 策略模式 轉
策略模式 strategy pattern 策略模式是物件的行為模式,用意是對一組演算法的封裝。動態的選擇需要的演算法並使用。 策略模式指的...
策略模式(Strategy)
1 2 在圖書銷售時,根據不同型別的圖書有不同的折扣,計算金額時必須區別對待, 3 例如計算機類圖書7折,英語類圖書6折。應用策略模式,用c...
iOS 策略模式
oop中三個原則 封裝 繼承 多型, 取經地址 策略模式我理解應該是演算法在源 中就已經配對好了,例如針對多個輸入框內容的判斷,有郵箱的判斷...