Cet article présente le mode décoration du mode conception PHP, qui a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer
Décorateur Aussi appartient à l'un des modèles structurels Définition : Ajout dynamique de responsabilités supplémentaires à un objet.
L'exemple le plus courant dans nos vies est l'équipement et les skins qui accompagnent le personnage à tout moment lorsqu'il joue à des jeux. Je crois que, garçons ou filles, tous ceux qui jouent à des jeux l'ont acheté. Le plus courant est que certains développeurs de jeux fabriquent certains équipements, tels que des armes, des vêtements, des chaussures, des bagues, etc., pour inciter les joueurs à les acheter. mais possède également des attributs supplémentaires.
<?php /** 构件接口类 * interface IComponent */ interface IComponent { function Display(); } /** 人物类 * Person */ Class Person implements IComponent { private $name; function __construct($name) { $this->name = $name; } function Display() { echo "{$this->name}当前装备:"; } } /** 装备类 * Equipment */ Class Equipment implements IComponent { protected $component; function Decorator(IComponent $component) { // 动态添加 $this->component = $component; } function Display() { if(!empty($this->component)){ $this->component->Display(); } } } /** 具体装备 武器类 * Weapon */ Class Weapon extends Equipment { function Display(){ parent::Display(); echo "龙泉剑 "; } } /** 具体装备 戒指类 * Ring */ Class Ring extends Equipment { function Display(){ parent::Display(); echo "复活戒指 "; } } /** 具体装备 鞋子类 * Shoes */ Class Shoes extends Equipment { function Display(){ parent::Display(); echo "御风履 "; } } // 如果需要可以继续添加具体的装备 腰带 裤子 手镯
<?php // 装饰器模式 index.php header("Content-Type:text/html;charset=utf-8"); require_once "Decorator.php"; // 创建人物 $people = new Person("战士"); // 武器 $Weapon = new Weapon(); // 戒指 $Ring = new Ring(); // 鞋子 $Shoes = new Shoes(); // 动态添加函数 $Weapon->Decorator($people); $Ring->Decorator($Weapon); $Shoes->Decorator($Ring); // 显示 $Shoes->Display();
Résultat de sortie :
战士当前装备:龙泉剑 复活戒指 御风履
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!