Maison >développement back-end >tutoriel php >Explication détaillée de l'implémentation et de l'utilisation du modèle de décorateur PHP
Cet article présente principalement l'implémentation et l'utilisation du modèle de décorateur PHP simple, et analyse le principe, l'implémentation et l'utilisation du modèle de décorateur PHP sous la forme d'exemples spécifiques. Les amis dans le besoin peuvent se référer à
comme suit. :
<?php //装饰器模式-在不改变原有类的结构上,对类的功能那个作补充 //武器基类 abstract class Weapon{ abstract public function descriptions(); abstract public function cost(); } //剑类 class Glave extends Weapon{ public function descriptions(){ return 'Glave'; } 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 = ''; 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 = '+ Strength'; } //敏捷属性 class Agility extends Property{ protected $_price = 50; protected $_descriptions = '+ Agility'; } //智力属性 class Intellect extends Property{ protected $_price = 20; protected $_descriptions = '+ Intellect'; } $weapon = new Agility(new Strength(new Strength(new Glave()))); echo $weapon->cost(); echo $weapon->descriptions();
PHPDécorateur modèle détaillé explication d'utilisation
PHPDecoratoranalyse de cas d'utilisation de modèles
PythonDécoration AppareilAnalyse de principe et d'utilisation
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!