javascript設計モード-----装飾者モード


一、概念
装飾者は継承より弾力性のある代替案を提供する.装飾者は同じインターフェースの対象を包装するために、方法に行動を追加するだけでなく、方法を元のオブジェクト呼び出し(例えば、装飾者のコンストラクタ)に設定することもできます.
装飾者は、リロード方法の形で、特定の目的を達成するために、被装飾者の前または後に自分の行動を加えることができる新しい機能を追加する.
二、実例
function Beverage()
{
	this.description="Unknown Beverage";
	this.cost=function()
	{
		return 0;
	}
}

//   
function Expresso(beverage)
{
	this.description="Expresso";
	this.cost=function()
	{
		return 1+beverage.cost();
	}
}

//   
function HouseBlend(beverage)
{
	this.description="HouseBlend";
	this.cost=function()
	{
		return 8+beverage.cost();
	}
}
//  
function   Mocha(beverage)
{
	this.description="Mocha";
	this.cost=function()
	{
		return 2+beverage.cost(); 
	}

}

var myBeveraage1=new HouseBlend(new Beverage());
var myBeveraage2=new Mocha(myBeveraage1);
console.log("     ",myBeveraage2.description," "+myBeveraage1.description,"   ",myBeveraage2.cost());
コードから関数を知ることができます.再帰的にオブジェクトbebeberageに行為を追加することによって、個人は装飾者モードがjavascriptの中では比較的に少ないと思っています.