引言
所屬:行為型模式,常用設計模式之一
學習資料:
模式概述
分享一篇關於策略模式講的很好的文章,大家可以參考一下:
策略模式就是用來封裝演算法的,但在實踐中,我們發現可以用它來封裝幾乎任何型別的規則,只要在分析過程中聽到需要在不同時間應用不同的業務規則,就可以考慮使用策略模式處理這種變化的可能性。
舉個栗子
超市**活動,分別有原價,八折,滿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策略模式
個人覺得設計模式只有在實際應用中才能夠慢慢的去熟悉,到最後做到心中有模式,事事有模式,哈哈 例如 乙個電商首頁,可以根據登陸使用者的性別不同顯示不同的內容,比如廣告和商品類別。傳統方法 在程式內部使用多個if,else進行判斷,這樣很難維護,比如我想要再加入乙個人妖使用者!那麼我就要在程式中再加入e...
php 設計模式(策略模式)
策略模式是將一組特定的行為和演算法封裝成類,以適應某些特定的上下文環境,這就是策略模式 電商類 針對男生和女生要跳到不同的商品類目,並且所有廣告位展示不同的廣告 中會出現 if男生 if女生 硬編碼 當需求改變時所有 都需要改變,這種情況就需要使用 策略模式因為策略模式 跟上下文的環境是中立的沒有依...
PHP設計模式 策略模式
其實就是同一方法的不同實現,類似於重寫。和工廠模式有一樣的效果,但是策略模式更注重方法的重寫,尤其是一種方法。工廠模式更注重類的不同,直接導致很多方法的不一樣。abstract class baseagent 用於客戶端是ie時呼叫的類 環境角色 class ieagent extends base...