Decorator(装饰器模式)

Posted 洞拐洞幺

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Decorator(装饰器模式)相关的知识,希望对你有一定的参考价值。

装饰器模式允许我们根据运行时不同的情景动态地为某个对象调用前后添加不同的行为动作。

<?php
class htmlTemplate {
    // any parent class methods
}
  
class Template1 extends HtmlTemplate {
    protected $_html;
      
    public function __construct() {
        $this->_html = "<p>__text__</p>";
    }
      
    public function set($html) {
        $this->_html = $html;
    }
      
    public function render() {
        echo $this->_html;
    }
}
  
class Template2 extends HtmlTemplate {
    protected $_element;
      
    public function __construct($s) {
        $this->_element = $s;
        $this->set("<h2>" . $this->_html . "</h2>");
    }
      
    public function __call($name, $args) {
        $this->_element->$name($args[0]);
    }
}
  
class Template3 extends HtmlTemplate {
    protected $_element;
      
    public function __construct($s) {
        $this->_element = $s;
        $this->set("<u>" . $this->_html . "</u>");
    }
      
    public function __call($name, $args) {
        $this->_element->$name($args[0]);
    }
}

  

以上是关于Decorator(装饰器模式)的主要内容,如果未能解决你的问题,请参考以下文章

设计模式:装饰器(Decorator)模式

装饰器模式--Decorator

装饰器模式-Decorator(Java实现)

设计模式入门之装饰器模式Decorator

Decorator(装饰器模式)

设计模式——装饰器模式(Decorator Pattern)