很多有關策略模式的例子都很單調,很理論化,不容易懂,使很多程式設計師望而卻步。以下這個例子是從泡妞出發講策略模式.
有些人泡妞很厲害,每天換女朋友,有些人不懂女人心,看著人家換女朋友,其實泡妞也要有策略的。
首先我們先寫乙個泡妞的類paoliu.php
<?php
/*** 泡妞策略v1.0版
* email:[email protected]
* url:www.emtit.com
*/include
'strategy.php';
include
'pola.php';
include
'wenyou.php';
include
'langman.php';
include
'learn.php';
class paoliu
}/**
* 根據具體的策略對像,呼叫其泡妞方法**/
public
function actioninte***ce()
}?>
然後寫乙個泡妞策略的抽像類strategy.php
<?php
/*** 泡妞策略抽像類**/
abstract
class strategy
?>
然後對每個不同型別的妞都寫乙個策略;
潑辣型pola.php
<?php
require_once ('strategy.php');
class pola extends strategy
public
function action()
}?>
溫柔型wenyou.php
<?php
require_once ('strategy.php');
class wenyou extends strategy
public
function action()
}?>
浪漫型langman.php
<?php
require_once ('strategy.php');
class langman extends strategy
public
function action()
}?>
如果不知道什麼型別呢?怎麼辦?也有乙個策略
就是去學一種learn.php
<?php
require_once ('strategy.php');
class learn extends strategy
public
function action()
}?>
策略模式是一種定義一系列演算法的方法,所有這些演算法都是完成相同的工作(就像泡妞都是完成追女孩子的工作),只是實現不同,它可以以相同的方式呼叫所有的演算法,減少各種演算法類與使用權用演算法類之間的耦合。
設計模式學習筆記之三 策略模式
策略模式 定義一系列演算法,分別分裝起來,這些演算法相互間可以替換並且不會影響到使用演算法的客戶。例子 肯德基推出一系列 a 乙個巨無霸漢堡,一杯大可,乙份薯條 b 雙份漢堡,兩杯中可,乙份薯條 c 全家桶,一堆堆雞塊雞翅,一大瓶可樂 假設乙個顧客來點餐只能點abc 中的乙個,按一般寫法 如下 ma...
精講策略設計模式
什麼是策略模式 策略模式是對演算法的包裝,是把使用演算法的責任和演算法本身分割開來,委派給不同的物件管理,最終可以實現解決多重if判斷問題。即每種實現即為一種策略 策略模式優缺點 策略模式應用場景 一般用於聚合支付,聚合推送,聚合簡訊等 策略模式架構圖 策略模式環境搭建 pom.xml spring...
設計模式(三) 策略模式
策略模式的結構圖 引用 模版方法模式,對照類圖可以看到,策略模式與模版方法模式的區別僅僅是多了乙個單獨的封裝類context,它與模版方法模式的區別在於 在模版方法模式中,呼叫演算法的主體在抽象的父類中,而在策略模式中,呼叫演算法的主體則是封裝到了封裝類context中,抽象策略strategy一般...