Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der Implementierung und Verwendung des PHP-Decorator-Musters

Detaillierte Erläuterung der Implementierung und Verwendung des PHP-Decorator-Musters

墨辰丷
墨辰丷Original
2018-05-21 11:13:321607Durchsuche

Dieser Artikel stellt hauptsächlich die Implementierung und Verwendung des einfachen PHP-Dekoratormodus vor und analysiert das Prinzip, die Implementierung und die Verwendung des PHP-Dekoratormodus anhand spezifischer Beispiele

wie folgt :

<?php
//装饰器模式-在不改变原有类的结构上,对类的功能那个作补充
//武器基类
abstract class Weapon{
  abstract public function descriptions();
  abstract public function cost();
}
//剑类
class Glave extends Weapon{
  public function descriptions(){
    return &#39;Glave&#39;;
  }
  public function cost(){
    return "100";
  }
}
//匕首类
class Knife extends Weapon{
  public function descriptions(){
    return __CLASS__;
  }
  public function cost(){
    return "80";
  }
}
//斧类
class Axe extends Weapon{
  public function descriptions(){
    return __CLASS__;
  }
  public function cost(){
    return "200";
  }
}
//属性类
class Property extends Weapon{
  protected $_weapon = null;
  protected $_price = 0;
  protected $_descriptions = &#39;&#39;;
  public function __construct(Weapon $weapon){
    $this->_weapon = $weapon;
  }
  public function cost(){
    return   $this->_weapon->cost() + $this->_price;
  }
  public function descriptions(){
    return $this->_weapon->descriptions().$this->_descriptions;
  }
}
//力量属性
class Strength extends Property{
  protected $_price = 30;
  protected $_descriptions = &#39;+ Strength&#39;;
}
//敏捷属性
class Agility extends Property{
  protected $_price = 50;
  protected $_descriptions = &#39;+ Agility&#39;;
}
//智力属性
class Intellect extends Property{
  protected $_price = 20;
  protected $_descriptions = &#39;+ Intellect&#39;;
}
$weapon = new Agility(new Strength(new Strength(new Glave())));
echo $weapon->cost();
echo $weapon->descriptions();

Verwandte Empfehlungen:

PHPDetaillierte Erklärung der Verwendung von DecoratorModus

PHPDecoratorMusteranwendungsfallanalyse

PythonDecorator Prinzip- und Nutzungsanalyse

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Implementierung und Verwendung des PHP-Decorator-Musters. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn