1. 程式人生 > >php策略模式

php策略模式

interface UserStrategy  //定義介面
{
function showAd();//定義介面方法
function showCategory();//定義介面方法
}
class FemaleUser implements UserStrategy//繼承介面
{
function showAd(){ //實現介面方法
echo "2016冬季女裝";
}
function showCategory(){//實現介面方法
echo "女裝";
}
}
class MaleUser implements UserStrategy//繼承介面
{
function showAd(){//實現介面方法
echo 
"IPhone6s"; } function showCategory(){//實現介面方法 echo "電子產品"; } } class Page { protected $strategy; //宣告變數,變數會被賦值成一個物件 function index(){ echo "AD"; $this->strategy->showAd(); //輸出,呼叫物件實現的方法 echo "<br>"; echo "Category"; $this->strategy->showCategory(); //輸出,呼叫物件實現的方法 echo "<br>"; } function
setStrategy(UserStrategy $strategy){//引數是一個介面 $this->strategy=$strategy; } } $page = new Page(); //newif(isset($_GET['male'])){ //判斷 $strategy = new MaleUser(); //根據條件new一個類 }else { $strategy = new FemaleUser();//根據條件new另一個類 } $page->setStrategy($strategy);//物件當作條件傳遞進類 $page->index();