PHP 策略模式

2022-08-05 11:27:07 字數 1463 閱讀 2659

引言

所屬:行為型模式,常用設計模式之一

學習資料:

模式概述

分享一篇關於策略模式講的很好的文章,大家可以參考一下:

策略模式就是用來封裝演算法的,但在實踐中,我們發現可以用它來封裝幾乎任何型別的規則,只要在分析過程中聽到需要在不同時間應用不同的業務規則,就可以考慮使用策略模式處理這種變化的可能性。

舉個栗子

超市**活動,分別有原價,八折,滿300減50,使用策略模式……,程式如何設計。

流程圖如下:

程式設計**:

1. 抽象活動演算法類

<?php /**

* 抽象活動演算法類 */

namespace strategy;

abstract

class

strategyabstract

2. 具體演算法產品類

<?php /**

* 滿減演算法產品類 */

namespace strategy;

class manjianstrategy extends

strategyabstract

}

<?php /**

* 打折演算法產品類 */

namespace strategy;

class dazhestrategy extends

strategyabstract

}

3. 策略工廠類

<?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...