javascript 适配、代理、装饰者模式的比较

文章系列

javascript 设计模式之单例模式javascript

javascript 设计模式之适配器模式java

javascript 设计模式之装饰者模式web

javascript设计模式之代理模式ajax

javascript 适配、代理、装饰者模式的比较设计模式

javascript 设计模式之状态模式浏览器

javascript 设计模式之迭代器模式markdown

javascript 设计模式之策略模式app

javascript 设计模式之观察者模式post

javascript 设计模式之发布订阅者模式fetch

适配器模式:将一个类(对象)的接口(方法或属性)转化成客户但愿的另一个接口(方法或属性),使得本来因为接口不兼容而不能一块儿工做的那些类(对象)能够正常协做。简单理解就是为兼容而生的 “转换器”。

代理模式:使用者无权访问目标对象,中间加代理,经过代理作受权和控制

装饰者(decorator)模式,又名装饰器模式,可以在不改变对象自身的基础上,在程序运行期间给对像动态的添加职责。与继承相比,装饰者是一种更轻便灵活的作法。

适配器: 特色在于兼容,并不预处理请求,直接将请求转接给新方法,新方法与原方法名能够不一样。好比兼容接口请求,旧的 ajax 成功适配成新的 fetch 请求; 还有兼容不一样浏览器之间的事件处理

代理: 特色在于隔离,要访问本体,要先访问下代理对象,起到保护的做用。控制对本体对象的访问。代理提供的方法提倡与本体方法名相同,好比预加载,以及经纪人与明星的事

装饰者: 特色在于加强,为对象添加功能,可添加屡次(好比既打印日志,又添加方法说明),造成装饰链,而适配器或代理只会对原有对象包装一次。好比 React 高阶组件

装饰者模式是“新增行为”,代理模式是“控制访问行为”,适配器模式是"转换行为"。

代理模式可能会有处理,再去调用本体。而适配器模式,则是直接转接给原方法。有个比方:

“代理模式“(严父):学校缴费要一千块,这么多? "适配器模式” (慈母):学校缴费要一千块,给给给。