PHP 策略模式

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

引言

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

學習資料:

模式概述

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

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

舉個栗子

超市**活動,分別有原價,八折,滿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設計模式 策略模式 轉

策略模式 strategy pattern 策略模式是物件的行為模式,用意是對一組演算法的封裝。動態的選擇需要的演算法並使用。 策略模式指的...

策略模式(Strategy)

1 2 在圖書銷售時,根據不同型別的圖書有不同的折扣,計算金額時必須區別對待, 3 例如計算機類圖書7折,英語類圖書6折。應用策略模式,用c...

iOS 策略模式

oop中三個原則 封裝 繼承 多型, 取經地址 策略模式我理解應該是演算法在源 中就已經配對好了,例如針對多個輸入框內容的判斷,有郵箱的判斷...