Cet article présente principalement le modèle décorateur implémenté par node.js. Il explique brièvement le principe et la fonction du modèle décorateur et donne la méthode d'implémentation du modèle décorateur node.js sous forme d'exemples. à lui. Suivant
L'exemple de cet article décrit le modèle de décorateur implémenté par node.js. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :
La mise en œuvre du modèle décorateur met l'accent sur la combinaison de classes plutôt que sur l'héritage. Cela augmente la flexibilité. Dans node.js, cela peut être réalisé via la fonction d'appel. La fonction d'appel peut appeler la fonction membre d'une autre classe dans un objet, en ce sens, l'objectif de la combinaison de classes est atteint.
var util = require('util'); var Beverage = function(){ var description = "Unkown Beverage" this.getDescription = function(){ return description; } } function Espresso(){ Beverage.call(this); this.description = "Espresso"; } util.inherits(Espresso, Beverage); Espresso.prototype.cost = function(){ return 1.99; } function HouseBlend(){ Beverage.call(this); this.description = "House Blend Coffee"; } util.inherits(HouseBlend, Beverage); HouseBlend.prototype.cost = function(){ return .89; } function Mocha(beverage){ this.beverage = beverage; }; Mocha.prototype.getDescription = function(){ return this.beverage.getDescription() + ", Mocha"; } Mocha.prototype.cost = function(){ return 0.20 + this.beverage.cost(); } function Whip(beverage){ this.beverage = beverage; }; Whip.prototype.getDescription = function(){ return this.beverage.getDescription() + ", Whip"; } Whip.prototype.cost = function(){ return 0.40 + this.beverage.cost(); } var beverage = new Espresso(); console.log(beverage.getDescription() + " $" + beverage.cost()); var beverage2 = new HouseBlend(); beverage2 = new Mocha(beverage2); beverage2 = new Mocha(beverage2); beverage2 = new Whip(beverage2); console.log(beverage2.getDescription() + " $" + beverage2.cost());
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!