Home >Backend Development >PHP Tutorial >PHP simple decorator pattern implementation code

PHP simple decorator pattern implementation code

小云云
小云云Original
2018-02-12 10:17:581339browse

This article mainly introduces the implementation and usage of PHP simple decorator mode to everyone. It analyzes the principle, implementation and usage of PHP decorator mode in the form of specific examples. Friends in need can refer to it. I hope it can help everyone.


<?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();

Related recommendations:

Detailed explanation of PHP decorator pattern

Decoration of PHP design pattern Detailed explanation of the decorator pattern

php advanced object-oriented design pattern: decorator pattern


The above is the detailed content of PHP simple decorator pattern implementation code. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn