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

主頁 > 知識庫 > PHP設計模式之裝飾器模式實例詳解

PHP設計模式之裝飾器模式實例詳解

熱門標簽:電話機器人危險嗎 400電話申請方法收費 離石地圖標注 400電話辦理福州市 長沙crm外呼系統業務 專業電話機器人批發商 南寧高頻外呼回撥系統哪家好 深圳外呼系統收費 江蘇外呼電銷機器人報價

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

裝飾器模式又叫裝飾者模式。裝飾模式是在不必改變原類文件和使用繼承的情況下,動態地擴展一個對象的功能。它是通過創建一個包裝對象,也就是裝飾來包裹真實的對象。

UML類圖:

角色:

組件對象的接口:可以給這些對象動態的添加職責
所有裝飾器的父類:需要定義一個與組件接口一致的接口,并持有一個Component對象,該對象其實就是被裝飾的對象。
具體的裝飾器類:實現具體要向被裝飾對象添加的功能。用來裝飾具體的組件對象或者另外一個具體的裝飾器對象。

具體代碼:

?php
/**
 * Created by PhpStorm.
 * User: Jiang
 * Date: 2015/5/3
 * Time: 11:11
 */
/**組件對象接口
 * Interface IComponent
 */
interface IComponent
{
  function Display();
}
/**待裝飾對象
 * Class Person
 */
class Person implements IComponent
{
  private $name;
  function __construct($name)
  {
    $this->name=$name;
  }
  function Display()
  {
    echo "裝扮的:{$this->name}br/>";
  }
}
/**所有裝飾器父類
 * Class Clothes
 */
class Clothes implements IComponent
{
  protected $component;
  function Decorate(IComponent $component)
  {
    $this->component=$component;
  }
  function Display()
  {
    if(!empty($this->component))
    {
      $this->component->Display();
    }
  }
}
//------------------------------具體裝飾器----------------
class PiXie extends Clothes
{
  function Display()
  {
    echo "皮鞋 ";
    parent::Display();
  }
}
class QiuXie extends Clothes
{
  function Display()
  {
    echo "球鞋 ";
    parent::Display();
  }
}
class Tshirt extends Clothes
{
  function Display()
  {
    echo "T恤 ";
    parent::Display();
  }
}
class Waitao extends Clothes
{
  function Display()
  {
    echo "外套 ";
    parent::Display();
  }
}

調用客戶端測試代碼:

header("Content-Type:text/html;charset=utf-8");
//------------------------裝飾器模式測試代碼------------------
require_once "./Decorator/Decorator.php";
$Yaoming=new Person("姚明");
$aTai=new Person("A泰斯特");
$pixie=new PiXie();
$waitao=new Waitao();
$pixie->Decorate($Yaoming);
$waitao->Decorate($pixie);
$waitao->Display();
echo "hr/>";
$qiuxie=new QiuXie();
$tshirt=new Tshirt();
$qiuxie->Decorate($aTai);
$tshirt->Decorate($qiuxie);
$tshirt->Display();

適用場景:

1. 需要動態的給一個對象添加功能,這些功能可以再動態的撤銷。

2. 需要增加由一些基本功能的排列組合而產生的非常大量的功能,從而使繼承關系變的不現實。

3. 當不能采用生成子類的方法進行擴充時。一種情況是,可能有大量獨立的擴展,為支持每一種組合將產生大量的子類,使得子類數目呈爆炸性增長。另一種情況可能是因為類定義被隱藏,或類定義不能用于生成子類。

更多關于PHP相關內容感興趣的讀者可查看本站專題:《php面向對象程序設計入門教程》、《PHP基本語法入門教程》、《PHP數組(Array)操作技巧大全》、《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設計模式之裝飾器模式實例詳解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: swag系列国产精品| 男人边吃奶边摸下面好爽| 无码人妻一区二区三区免费京洛会 | 校服下小粉嫩的小奶头黄照| 激情久久久久久久久久久| 国产cuckold绿夫奴vk| 日本三级一区| 人和拘一级毛片视频| 勾人夫(高H)| 久久综合资源| 狼伊千合综网中文| 别c我?啊?嗯上课呢高H酒店| 亚清产品视二三三区| 毛片在线视频观看| 欧美日韩影院| 巜一边亲一边摸下奶》| 揉我奶头?好爽?嗯H| 国产观看精品一区二区三区| chinese中国超帅gayvideos| 亚洲一区二区三区久久久久| 《禁忌6》伦理| 欧美jizzdh精品巨大| 亚洲国产天堂在线mv网站| 99久久一毛二区精品无码69堂 | 男人的天堂久久香蕉国产| 国产精品国偷自产在线| 黑人滛乱18p| 亚洲精品www久久久久久广东| 舒淇三级片| 美妇乱妇乱| 麻豆精品无码国产在线观看| 美女又爽?又黄?丝袜666AV| 99热com| 国产又爽又黄又舒服又刺激视频| 免费福利片| 99热这里有精品首页10| 成人午夜免费无码福利软件 | 又爽又黄A片免费观看啪啪 | 五级日本床片在线观看| 无码亚洲XXXXX在线观看少妇| 女人脱了内衣给摸男人视频|