<>强装饰设计模式强>
每种设都有其独特的应用场景和解决问题的方式,装饰设计模式是动态的为对象添加新的功能,是一种用于代替继承的技术,无需通过继承增加子类就能扩展对象的新功能。使用对象的关联关系代替继承关系,更加灵活,同时避免类型体系的快速膨胀,这种模式适合新添加的功能不足以用继承为代价解决问题的情况时使用,杀鸡焉用宰牛刀^ _ ^
引用>
装饰设计模式:动态地为一个对象添加一些额外的职责,若要扩展一个对象的功能,装饰者提供了比继承更有弹性的替代方案。结构图:
<强>接口强>
var自行车=新界面(“自行车”,(“组装”、“洗”、“修复”,' getPrice ']);<强>对象类强>
var AcmeComfortCuiser=function () { }; AcmeComfortCuiser。原型={ 组装:函数(){ }, 清洗:函数(){ }, 修复:函数(){ }, getPrice:函数(){ } }<>强装饰类强>
var BicycleDecorator=函数(自行车){ 接口。ensureImplements(自行车、自行车); 这一点。自行车=自行车; }; BicycleDecorator。原型={ 组装:函数(){ 返回this.bicycle.assemble (); }, 清洗:函数(){ 返回this.bicycle.wash (); }, 修复:函数(){ 返回this.bicycle.repair (); }, getPrice:函数(){ 返回this.bicycle.getPrice (); } }<>强拓展类强>
var HeadlightDecorator=函数(自行车){ BicycleDecorator。调用(这、自行车); }; 扩展(HeadlightDecorator BicycleDecorator); HeadlightDecorator.prototype。getPrice=function () { 返回this.bicycle.getPrice () + 15.00; }
js装饰设计模式学习心得