php策略模式
阿新 • • 發佈:2019-02-02
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>"; } functionsetStrategy(UserStrategy $strategy){//引數是一個介面 $this->strategy=$strategy; } } $page = new Page(); //new類 if(isset($_GET['male'])){ //判斷 $strategy = new MaleUser(); //根據條件new一個類 }else { $strategy = new FemaleUser();//根據條件new另一個類 } $page->setStrategy($strategy);//物件當作條件傳遞進類 $page->index();