程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php設計模式 策略模式,php設計模式

php設計模式 策略模式,php設計模式

編輯:關於PHP編程

php設計模式 策略模式,php設計模式


策略模式:

將一組特定的行為和算法封裝成類,以適應某些特定的上下文環境;

實際應用舉例,假如一個電商網站系統,針對男性女性用戶要各自跳轉到不同的商品類目,並且所有廣告位展示不同的廣告。

UserStrategy.php

<?php
namespace Baobab;

interface UserStrategy{
    function showAd();
    function showCategory();
}
?>

FemaleUserStrategy.php

<?php
namespace Baobab;

class FemaleUserStrategy implements UserStrategy{
    function showAd(){
        echo '2016新款女裝';
    }
    function showCategory(){
        echo '女裝';
    }
}

?>

MaleUserStrategy.php

<?php
namespace Baobab;

class MaleUserStrategy implements UserStrategy{
    function showAd(){
        echo 'Iphone6s plus';
    }
    function showCategory(){
        echo '電子產品';
    }
}

?>

index.php

class Page{
     protected $strategy;
     function Index(){
         $this->strategy->showAd();
         echo '<br/>';
         $this->strategy->showCategory();
     }
     function setStrategy(Baobab\UserStrategy $strategy){
         $this->strategy = $strategy;
     }
}
$page = new Page();
if (isset($_GET['female'])){
    $strategy = new Baobab\FemaleUserStrategy();
}else{
    $strategy = new Baobab\MaleUserStrategy();
}
$page->setStrategy($strategy);
$page->Index();

使用策略模式可實現Ioc,依賴倒置、控制反轉

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved