好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > PHP設計模式之裝飾器模式定義與用法簡單示例

PHP設計模式之裝飾器模式定義與用法簡單示例

熱門標簽:企業400電話辦理多少費用 電信外呼系統多少錢一個月 萍鄉商鋪地圖標注 合肥企業外呼系統線路 桂陽公司如何做地圖標注 代理打電話機器人 宿州正規外呼系統軟件 太原400電話申請流程 神龍斗士電話機器人

本文實例講述了PHP設計模式之裝飾器模式定義與用法。分享給大家供大家參考,具體如下:

裝飾器模式:

如果已有對象的部分內容或功能性發生改變,但是不需要修改原始對象的結構或不使用繼承,動態的擴展一個對象的功能,則應該使用裝飾器模式。

簡單點說:就是我們不應該去修改已有的類,而是通過創建另外一個裝飾器類,通過這個裝飾器類去動態的擴展其需要修改的內容,這樣做的好處就是————

  • 1、我們可以保證類的層次不會因過多而發生混亂。
  • 2、當我們需求的修改很小時,不用改變原有的數據結構。

代碼引用自《PHP設計模式》。

/**
* 被修飾類
現在的需求:
要求能夠動態為CD添加音軌、能顯示CD音軌列表。
顯示時應采用單行并且為每個音軌都以音軌好為前綴。
*/
class CD
{
  public $trackList;
  function __construct()
  {
    # code...
    $this->trackList=array();
  }
  public function addTrack($track){
    $this->trackList[]=$track;
  }
  public function getTrackList(){
    $output=" ";
    foreach ($this->trackList as $key => $value) {
      # code...
      $output.=($key+1).") {$value}. ";
    }
    return $output;
  }
}
/*
現在需求發生變化:
要求將當前實例輸出的音軌都采用大寫形式。
這個需求并不是一個變化特別大的需求,不需要修改基類或創建一個父子關系的子類,此時創建一個基于裝飾器模式的裝飾器類。
*/
class CDTrackListDecoratorCaps{
  private $_cd;
  public function __construct(CD $CD){
    $this->_cd=$CD;
  }
  public function makeCaps(){
    foreach ($this->_cd->trackList as $key => $value) {
      # code...
      $this->_cd->trackList[$key]=strtoupper($value); //轉換成大寫
    }
  }
}
//客戶端測試:
$myCD=new CD();
$trackList=array(
  "what It Means",
  "brr",
  "goodBye"
  );
foreach ($trackList as $key => $value) {
  # code...
  $myCD->addTrack($value);
}
$myCDCaps=new CDTrackListDecoratorCaps($myCD);
$myCDCaps->makeCaps();
print "The CD contains the following tracks:".$myCD->getTrackList();

運行結果:

The CD contains the following tracks: 1) WHAT IT MEANS. 2) BRR. 3) GOODBYE.

更多關于PHP相關內容感興趣的讀者可查看本站專題:《php面向對象程序設計入門教程》、《PHP數組(Array)操作技巧大全》、《PHP基本語法入門教程》、《PHP運算與運算符用法總結》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》

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

您可能感興趣的文章:
  • 學習php設計模式 php實現裝飾器模式(decorator)
  • PHP設計模式之裝飾器模式定義與用法詳解
  • PHP簡單裝飾器模式實現與用法示例
  • PHP設計模式之裝飾器模式實例詳解
  • PHP設計模式(七)組合模式Composite實例詳解【結構型】
  • PHP設計模式(六)橋連模式Bridge實例詳解【結構型】
  • PHP設計模式(五)適配器模式Adapter實例詳解【結構型】
  • PHP設計模式(四)原型模式Prototype實例詳解【創建型】
  • PHP設計模式(三)建造者模式Builder實例詳解【創建型】
  • PHP設計模式(一)工廠模式Factory實例詳解【創建型】
  • PHP設計模式概論【概念、分類、原則等】
  • PHP設計模式(八)裝飾器模式Decorator實例詳解【結構型】

標簽:白銀 衡陽 辛集 廊坊 崇左 太原 鄂州 綏化

巨人網絡通訊聲明:本文標題《PHP設計模式之裝飾器模式定義與用法簡單示例》,本文關鍵詞  PHP,設計模式,之,裝飾,器,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP設計模式之裝飾器模式定義與用法簡單示例》相關的同類信息!
  • 本頁收集關于PHP設計模式之裝飾器模式定義與用法簡單示例的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 欧美free性XXXX护士HD| 男生多少分钟一次算是正常的 | 成人au免费视频影院| 2021麻豆剧果冻传媒影视| 大胸美女裸体| 日本非洲AAAAAA视频免费视频| 韩国三级理论在线观看| 狠狠操狠狠色| 扒开美女内裤狂揉下部直播| 人伦人与牲囗恔配视频| 欧美护士性极品hd4k| 鸡泽县| 中国老太婆gramytrube七tebj| 四虎8848精品成人免费网站| 日本肉体裸交???av| 又色又污又黄无遮挡的免费视| 蜜雪吻| 国产AV巨作在线观看| 先锋影音亚洲中文字幕新版旧版入口地址 | 国产全肉乱妇杂乱视频| 国产精品18久久久久久不卡| 午夜爱爱影院| 老猫在线观看完整免费| 潘金莲西门庆做爰| 77久久爽无码| 久久99精品这里精品3| 欧美×videossexo另类暴力| 96xxxxx日本人| 啊?好硬?再深点H男男动漫| 乱小说录目3| 好紧浪货好爽在一点| chinese 男男gay viodes| 欧美一级 黄 色 片69| 试看120秒小视频动态图动漫 | 欧美艳星nikoettesheα| 午夜成人精品久久久久久久 | 日韩国品一二三产品区别2028 | 孕妇被躁BD在线观看看| 啊~嗯~进去了~好痛| 公交车上解我胸罩玩我下面| 青青草国产精品久久久久|