Maison > Article > développement back-end > Explication détaillée du modèle de décorateur des modèles de conception PHP
Module DécorateurModule peut ajouter et modifier dynamiquement la fonction d'une classe. Chaque classe fournit une fonction. Si vous souhaitez modifier et ajouter des fonctions supplémentaires, la programmation traditionnelle consiste à le faire. écrire une sous-classe pour en hériter et réimplémenter la méthode de classe, en utilisant le modèle de décorateur, et il suffit d'ajouter un décorateurObject peut être mis en œuvre pour obtenir une flexibilité maximale
<?php /* * 装饰模式 */ abstract class Beverage { public $_name; abstract public function Cost(); } // 被装饰者类 class Coffee extends Beverage { public function construct() { $this->_name = 'Coffee'; } public function Cost() { return 1.00; } } // 以下三个类是装饰者相关类 class CondimentDecorator extends Beverage //装饰类 { public function construct() { $this->_name = 'Condiment'; } public function Cost() { return 0.1; } } class Milk extends CondimentDecorator //牛奶 配料 --装饰者 { public $_beverage; public function construct($beverage) { if ($beverage instanceof Beverage) { $this->_beverage = $beverage; } else exit('Failure'); } public function Cost() { return $this->_beverage->Cost() + 0.2; } } class Sugar extends CondimentDecorator //糖 配料 --装饰者 { public $_beverage; public function construct($beverage) { $this->_name = 'Sugar'; if ($beverage instanceof Beverage) { $this->_beverage = $beverage; } else { exit('Failure'); } } public function Cost() { return $this->_beverage->Cost() + 0.2; } } // Test Case //1.拿杯咖啡 $coffee = new Coffee(); //2.加点牛奶 $coffee = new Milk($coffee); //3.加点糖 $coffee = new Sugar($coffee); echo $coffee->Cost(); echo $coffee->_name;Le mode de décoration réduit le couplage du système et peut ajouter ou supprimer dynamiquement les responsabilités des objets, et permet au composant spécifique les classes et les classes de décoration spécifiques qui doivent être décorées doivent être modifiées indépendamment, afin que de nouvelles classes de composants spécifiques et des classes de décoration spécifiques puissent être ajoutées
Recommandations associées :
Exemple de code détaillé du mode de décoration PHP
Facile à comprendre le modèle singleton du modèle de conception PHP
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!