中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP中的裝飾者模式是什么

發布時間:2021-06-30 15:57:24 來源:億速云 閱讀:139 作者:chen 欄目:開發技術

這篇文章主要講解了“PHP中的裝飾者模式是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“PHP中的裝飾者模式是什么”吧!

定義:

裝飾者模式就是不修改原類代碼和繼承的情況下動態擴展類的功能。傳統的編程模式都是子類繼承父類實現方法重載,使用裝飾器模式,只需添加一個新的裝飾器對象,更加靈活,避免類數量和層次過多。

角色:

Component(被裝飾對象基類)
ConcreteComponent(具體被裝飾對象)
Decorator(裝飾者基類)
ContreteDecorator(具體的裝飾者類)

示例代碼:

//被裝飾者基類
interface Component
{
  public function operation();
}
 
//裝飾者基類
abstract class Decorator implements Component
{
  protected $component;
 
  public function __construct(Component $component)
  {
    $this->component = $component;
  }
 
  public function operation()
  {
    $this->component->operation();
  }
}
 
//具體裝飾者類
class ConcreteComponent implements Component
{
  public function operation()
  {
    echo 'do operation'.PHP_EOL;
  }
}
 
//具體裝飾類A
class ConcreteDecoratorA extends Decorator {
  public function __construct(Component $component) {
    parent::__construct($component);
 
  }
 
  public function operation() {
    parent::operation();
    $this->addedOperationA();  // 新增加的操作
  }
 
  public function addedOperationA() {
    echo 'Add Operation A '.PHP_EOL;
  }
}
 
//具體裝飾類B
class ConcreteDecoratorB extends Decorator {
  public function __construct(Component $component) {
    parent::__construct($component);
 
  }
 
  public function operation() {
    parent::operation();
    $this->addedOperationB();
  }
 
  public function addedOperationB() {
    echo 'Add Operation B '.PHP_EOL;
  }
}
 
 
class Client {
 
  public static function main() {
    /*
    do operation
    Add Operation A
    */
    $decoratorA = new ConcreteDecoratorA(new ConcreteComponent());
    $decoratorA->operation();
 
 
    /*
    do operation
    Add Operation A 
    Add Operation B 
    */
    $decoratorB = new ConcreteDecoratorB($decoratorA);
    $decoratorB->operation();
  }
 
}
 
Client::main();

感謝各位的閱讀,以上就是“PHP中的裝飾者模式是什么”的內容了,經過本文的學習后,相信大家對PHP中的裝飾者模式是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

思南县| 浦北县| 观塘区| 江油市| 麦盖提县| 孟州市| 富裕县| 泾川县| 鹿邑县| 赤水市| 佛教| 绥棱县| 汉寿县| 阿坝县| 平陆县| 大埔县| 出国| 徐水县| 濉溪县| 日照市| 丹江口市| 鄱阳县| 柳林县| 微山县| 迁安市| 九龙城区| 津市市| 永嘉县| 改则县| 高陵县| 巴中市| 阿拉善盟| 尼木县| 宁城县| 信宜市| 大安市| 壶关县| 雅江县| 邵东县| 如皋市| 齐齐哈尔市|