php設計模式之策略模式

2021-07-15 12:42:22 字數 1009 閱讀 9679

在此模式中,

演算法是從複雜類提取的

,因而可以

方便地替換

。 例如,如果要更改搜尋引擎中排列頁的方法,則策略模式是乙個不錯的選擇。思考一下搜尋引擎的幾個部分 —— 一部分遍歷頁面,一部分對每頁排列,另一部分基於排列的結果排序。在複雜的示例中,這些部分都在同乙個類中。通過使用策略模式,您可將排列部分放入另乙個 類中,以便更改頁排列的方式,而不影響搜尋引擎的其餘**。

作為乙個較簡單的示例,下面 顯示了乙個使用者列表類,它提供了乙個根據

一組即插即用的策略查詢一組使用者

的方法

//定義介面

inte***ce istrategy

//實現介面方式1

class findafterstrategy implements istrategy

public function filter($record)

}//實現介面方式1

class randomstrategy implements istrategy

}//主類

class userlist }}

public function add($name)

public function find($filter)

return $recs;

}}$ul = new userlist ( array (

"andy",

"jack",

"lori",

"megan"

) );

$f1 = $ul->find ( new findafterstrategy ( "j" ) );

print_r ( $f1 );

$f2 = $ul->find ( new randomstrategy () );

複製**

print_r ( $f2 );

策略模式非常適合複雜資料管理系統或資料處理系統,二者在資料篩選、搜尋或處理的方式方面需要較高的靈活性

PHP設計模式之策略模式

策略模式 將一組特定的行為和演算法封裝成類,以適應某些特定的上下文環境,這種模式就是策略模式 使用策略模式實現ioc,依賴倒置,控制反轉 假如乙個電商 系統,針對不同的人群要跳轉到不同的商品類目,並且所有廣告位展示不同的廣告 1.不會因為上下文的改變而改變 傳統都是使用ifelse來判斷 2.如果新...

PHP設計模式之策略模式

策略模式 將一組特定的行為和演算法封裝成類。以適應某些特定的上下文環境,這樣的模式就是策略模式 使用策略模式實現ioc,依賴倒置,控制反轉 假如乙個電商站點系統,針對不同的人群要跳轉到不同的商品類目。而且全部廣告位展示不同的廣告 1.不會由於上下文的改變而改變 傳統都是使用ifelse來推斷 2.假...

PHP設計模式之策略模式

以下文字部分均為本人自己的想法與總結所以未必正確 參考策略模式 概述 策略模式就是用來封裝演算法的,但在實踐中,我們發現可以用它來封裝幾乎任何型別的規則,只要在分析過程中聽到需要在不同時間應用不同的業務規則,就可以考慮使用策略模式處理這種變化的可能性。策略模式是一種定義一系列演算法的方法,從概念上來...