南通网站建设制作公司,如何增加网站权重,杭州市建设工程招标网,上海网站建设软件下载文章の目录一、什么是装饰者模式二、优势三、缺点四、应用场景五、示例参考写在最后一、什么是装饰者模式
装饰者模式也称为包装器模式#xff0c;在不改变原有对象的基础上为其动态的添加上新的功能。
装饰者模式有以下特点#xff1a;
添加功能时不改变原对象结构。装饰…
文章の目录一、什么是装饰者模式二、优势三、缺点四、应用场景五、示例参考写在最后一、什么是装饰者模式
装饰者模式也称为包装器模式在不改变原有对象的基础上为其动态的添加上新的功能。
装饰者模式有以下特点
添加功能时不改变原对象结构。装饰对象和原对象提供的接口相同方便按照源对象的接口来使用装饰对象。装饰对象中包含原对象的引用。即装饰对象是真正的原对象包装后的对象。 实际上装饰着模式的一个比较方便的特征在于其预期行为的可定制和可配置特性。从只有基本功能的普通对象开始不断增强对象的一些功能并按照顺序进行装饰。
二、优势
装饰类和被装饰类可以独立发展不会相互耦合装饰模式是继承的一个替代模式装饰模式可以动态扩展一个实现类的功能。
三、缺点
多层装饰比较复杂。
四、应用场景
扩展一个类的功能。动态增加功能动态撤销。
五、示例
给release方法添加Hurt方法
function Hurt() {console.log(造成100点伤害);
}
class Yase {constructor() {this.name 亚瑟;}release() {console.log(释放技能);}
}
Function.prototype.Decorator function (fn) {this();fn();
};
let yase new Yase();
// 装饰 对于原本类没有更改
yase.release.Decorator(Hurt);装饰者链
Function.prototype.Decorator function (fn) {let _this this;return function () {// console.log(111,fn);_this();fn();};
};
// 装饰者链
yase.release.Decorator(Hurt).Decorator(Hurt).Decorator(Hurt).Decorator(Hurt)();参考
【JS】167-JavaScript设计模式——装饰者模式js中的设计模式之装饰者模式
写在最后 如果你感觉文章不咋地//(ㄒoㄒ)//就在评论处留言作者继续改进o_O??? 如果你觉得该文章有一点点用处可以给作者点个赞\\*^o^*// 如果你想要和作者一起进步可以微信扫描二维码关注前端老L~~~///(^v^)\\\~~~ 谢谢各位读者们啦(^_^)∠※