亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

PHP實現的策略模式示例

2024-05-05 00:07:38
字體:
來源:轉載
供稿:網友

本文實例講述了PHP實現的策略模式。分享給大家供大家參考,具體如下:

個人覺得設計模式只有在實際應用中才能夠慢慢的去熟悉,到最后做到心中有模式,事事有模式,哈哈

例如:一個電商首頁,可以根據登陸用戶的性別不同顯示不同的內容,比如廣告和商品類別。

傳統方法:在程序內部使用多個if,else進行判斷,這樣很難維護,比如我想要再加入一個人妖用戶!那么我就要在程序中再加入else if判斷,這樣寫出來的程序看起來很亂,而且不易維護。

策略模式:實現的思想是這樣的,創建一個接口,對于每個類別的用戶創建一個類,分別去實現接口中的方法,在首頁進行判斷實例化哪個類。

代碼如下:

接口文件UserStrategy.php

<?php//定義接口,我要展示廣告和類別interface UserStrategy{  //顯示廣告的方法  public function showAd();  //顯示類別的方法  public function showCategory();}?>

男性用戶的具體顯示MaleUserStrategy.php

<?php//強制實現接口中的方法class MaleUserStrategy implements UserStrategy{  //男性用戶登錄后會顯示iphone6s的廣告  public function showAd()  {    echo 'Iphone6s';  }  //會顯示電子產品類別  public function showCategory()  {    echo '電子產品啊';  }}?>

女性用戶的具體顯示FemaleUserStrategy.php

<?phpclass FemaleUserStrategy implements UserStrategy{  public function showAd()  {    echo '2016女裝';  }  public function showCategory()  {    echo '女裝';  }}?>

重點來了,創建首頁文件Strategy.php

<?php//如果我想使用上面那些類的話就需要一個文件一個文件的require,但我們可以使用一種方法來自動加載所需要的文件//首先定義一個基本的文件路徑,因為這些文件我都是放在一個文件夾下的define('BASEDIR', __DIR__);//載入一個自動require文件的文件,這里我寫成Config.phprequire 'Config.php';//PHP提供的spl庫,這我們就把需要的文件都加載進來了//那么spl_autoload_register()是什么意思呢?其實就是,當程序運行碰到了沒有定義的類的時候就會自動執行它里面的函數,所以就把文件加載近來了呀!spl_autoload_register('Config::autoload');class Strategy{  //定義一個變量來存儲策略  protected $_strategy;  //定義展示廣告和類別的方法  public function index()  {    echo 'Ad:';    echo $this->_strategy->showAd();    echo '<br/>';    echo 'Category:';    echo $this->_strategy->showCategory();  }  //創建不同的策略  public function setStrategy($strategy)  {    $this->_strategy = $strategy;  }}//實例化對象$strategy = new Strategy();//如果$_GET['female']存在的話就顯示女性用戶的廣告和類別--如果需要添加其它策略的時候只需要在這里加入判斷條件就可以了,當然了還需要創建相應策略的類并且一定要去繼承接口哦if(isset($_GET['female'])){  $people = new FemaleUserStrategy();}else{  $people = new MaleUserStrategy();}//把對象傳入到策略類里$strategy = setStrategy($people);//顯示廣告和類別--因為使用了策略模式,當我們需要新增加一個策略的時候這里就不需要修改了。$strategy->index();?>

自動引入文件Config.php

<?php//這里大家可以看到,我的文件都是大寫開頭的,而且每個文件中只有一個類,并且這個類的名字是和文件名一樣的,其實這是一種框架的規范,大家有興趣的話可以查找一下,psr-0規范class Config{  //定義一個自動引入文件的方法  static function autoload($class)  {    //這里拼接我們需要引入文件的路徑    require BASEDIR.'/'.$class.'.php';  }}?>

告誡自己在以后的編程中多去考慮,熟能生巧。

希望本文所述對大家PHP程序設計有所幫助。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧美国产精品va在线观看| 91精品国产沙发| 91精品国产91| 色小说视频一区| 日本一区二区在线播放| 欧美日韩亚洲精品内裤| 欧美成人国产va精品日本一级| 国产精品草莓在线免费观看| 日韩av黄色在线观看| 欧美激情videos| 亚洲有声小说3d| 亚洲欧美在线播放| 亚洲精品视频免费在线观看| 日本乱人伦a精品| 久久精品视频在线播放| 亚洲天堂男人天堂| 国产成人涩涩涩视频在线观看| 中文字幕国产亚洲2019| 91美女高潮出水| 欧美黄色性视频| 日韩精品视频在线观看网址| 日韩av网站大全| 91九色国产社区在线观看| 亚洲欧洲一区二区三区在线观看| 777国产偷窥盗摄精品视频| 国产噜噜噜噜噜久久久久久久久| 亚洲欧洲xxxx| 欧洲午夜精品久久久| 亚洲欧美视频在线| 国产精品99导航| 欧美激情二区三区| 亚洲精品国产精品自产a区红杏吧| 8090理伦午夜在线电影| 成人免费在线网址| 亚洲精品91美女久久久久久久| 中文字幕日本精品| 中文字幕一区二区精品| 上原亚衣av一区二区三区| 中文综合在线观看| 亚洲一区二区三区毛片| 日本精品久久电影| 91亚洲国产成人久久精品网站| 国产一区二区三区18| 亚洲精品v天堂中文字幕| 国产精品久久97| 中文字幕亚洲欧美一区二区三区| 欧美激情中文字幕乱码免费| 国产精品精品一区二区三区午夜版| 精品国产精品三级精品av网址| 欧美性受xxxx黑人猛交| 国产69精品久久久久久| 粗暴蹂躏中文一区二区三区| 日韩精品电影网| 欧美在线视频免费播放| 亚洲视频第一页| 久久91亚洲精品中文字幕| 日韩av电影在线免费播放| 亚洲欧美国产日韩中文字幕| 中文字幕成人在线| 中文字幕亚洲欧美一区二区三区| 国产精品美女无圣光视频| 国产成人精品国内自产拍免费看| 日日狠狠久久偷偷四色综合免费| 久久久精品久久| 成人情趣片在线观看免费| 亚洲精品成人免费| 亚洲国产精品电影在线观看| 国产精品久久久久久久久久三级| 亚洲综合在线中文字幕| 国产成人精品视频在线观看| 欧洲成人午夜免费大片| 欧美极品少妇xxxxⅹ裸体艺术| 精品国产一区久久久| 国产亚洲精品久久久久动| 欧美性猛交xxx| 国产精品视频播放| www.日韩欧美| 青草青草久热精品视频在线网站| 亚洲欧美日韩在线一区| 成人激情电影一区二区| 美女999久久久精品视频| 国产精品成人久久久久| 日韩精品视频在线| 欧美性生交xxxxx久久久| 国产精品久久97| 黑人精品xxx一区一二区| 最好看的2019的中文字幕视频| 国产精品丝袜高跟| 成人a免费视频| 久久免费福利视频| 中文字幕精品在线| 8050国产精品久久久久久| 欧美激情一二三| 欧美第一黄色网| 日韩激情在线视频| 国产精品一区二区三区免费视频| 亚洲精品中文字幕av| 亚洲国产精彩中文乱码av在线播放| 午夜精品久久久久久久久久久久久| 国产精品免费电影| 亚洲久久久久久久久久久| 国内精品视频久久| 久久九九国产精品怡红院| 久久精品小视频| 久久精品精品电影网| 日日噜噜噜夜夜爽亚洲精品| 一区二区三区精品99久久| 欧美黄色三级网站| 不卡av在线播放| 国产99久久精品一区二区 夜夜躁日日躁| 国产成人aa精品一区在线播放| 亚洲精品www久久久久久广东| 国产精品一区久久| 日韩中文在线中文网在线观看| 日韩欧美亚洲成人| 国产精品视频自在线| 亚洲一区二区三区777| 91久久精品在线| 狠狠躁夜夜躁人人躁婷婷91| 2021久久精品国产99国产精品| 久久69精品久久久久久国产越南| 日韩欧美中文免费| 中文字幕欧美精品日韩中文字幕| 黑人精品xxx一区| 亚洲欧美国产制服动漫| 国产日本欧美一区二区三区| 国产精品爱久久久久久久| 亚洲xxxx做受欧美| 久久精品电影网| 亚洲最新av网址| 久久亚洲精品一区| 福利视频导航一区| 91精品在线观看视频| 亚洲美女激情视频| 精品一区二区三区三区| 中文字幕日韩免费视频| 亚洲一区二区久久久| 亚洲国产精品嫩草影院久久| 92福利视频午夜1000合集在线观看| 久久亚洲私人国产精品va| 国产精品999| 日韩精品极品在线观看播放免费视频| 性视频1819p久久| 欧美—级高清免费播放| 亚洲人成电影在线| 成人中文字幕在线观看| 国产精品亚洲欧美导航| 欧美丝袜一区二区三区| 日韩欧美精品中文字幕| 欧美成年人视频| 亚洲激情在线观看视频免费| 亚洲欧美中文另类| 亚洲视频欧洲视频| 国产一区二区三区在线观看网站| 欧美精品九九久久| 中文.日本.精品| 精品国产鲁一鲁一区二区张丽| 欧美综合一区第一页| 亚洲欧洲成视频免费观看| 亚洲一区中文字幕在线观看| 久久久久亚洲精品| 中文字幕亚洲无线码在线一区| 国产狼人综合免费视频| 久久全国免费视频|