中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

node.js實現的裝飾者模式示例

發布時間:2020-10-05 16:06:26 來源:腳本之家 閱讀:141 作者:MatthewehttaM 欄目:web開發

本文實例講述了node.js實現的裝飾者模式。分享給大家供大家參考,具體如下:

裝飾者模式的實現更強調類的組合而不是通過繼承。這樣可以增強靈活性。在node.js 中,可以通過call函數實現。call函數可以在一個對象中調用另一個類的成員函數,從這種意義上達成類的組合目的。

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

希望本文所述對大家node.js程序設計有所幫助。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南澳县| 岳普湖县| 同德县| 东明县| 星座| 霞浦县| 武穴市| 贵南县| 城步| 前郭尔| 关岭| 镇巴县| 南充市| 陕西省| 开阳县| 澄迈县| 揭东县| 林甸县| 手机| 炎陵县| 乌拉特中旗| 南木林县| 渑池县| 佛坪县| 大石桥市| 岫岩| 西乌珠穆沁旗| 海林市| 杭州市| 东方市| 成安县| 休宁县| 武穴市| 苍梧县| 南溪县| 武陟县| 永泰县| 杭锦后旗| 金湖县| 壶关县| 和田县|