設計模式之三 策略模式(泡妞講策略模式)

2021-04-23 10:46:43 字數 1459 閱讀 3373

很多有關策略模式的例子都很單調,很理論化,不容易懂,使很多程式設計師望而卻步。以下這個例子是從泡妞出發講策略模式.

有些人泡妞很厲害,每天換女朋友,有些人不懂女人心,看著人家換女朋友,其實泡妞也要有策略的。

首先我們先寫乙個泡妞的類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一般...