JavaScript设计模式系列五:适配器模式

本片文章给大家分享的是javascript设计模式系列五:适配器模式,有感兴趣的朋友可以看一下

什么是适配器模式

所谓 适配器模式 就是用一个新的接口对现有的接口进行包装,处理类与API的不匹配。使用这种模式的对象又叫作包装器。
比如我们有一个接口:

function api (x1, x2, x3) {  console.log(x1 + x2 + x3);  // 用console.log来模拟接口的相关操作}

登录后复制

然后我们有一个对象数据:

var obj = {  a: '我',  b: '很',  c: '帅'}

登录后复制

我们可以发现,我们的数据和接口的参数是不匹配的,无法直接参入obj调用该api。
这时候怎么办呢?我们可以定义一个适配器函数:

function adapter (o) {  // 通过适配器函数来调用目的api  api(o.a, o.b, o.c);} adapter(obj);// 我很帅

登录后复制

这样,通过适配器函数 adapter() 我们就可以直接传入obj来调用api了,类与api的不匹配问题就引刃而解了。

立即学习“Java免费学习笔记(深入)”;

总结

适配器模式就是用一个新的接口对现有的接口进行包装,处理类与API的不匹配。使用这种模式的对象又叫作包装器。
适用情况

使用一个已经存在的对象,但其方法或属性接口不符合我们的要求。

想要创建一个可复用对象,该对象可以与其他不相关的对象或不可见的对象协同工作

想使用的对象已经存在,但是不能对每一个都进行原型继承以匹配它的接口。对象适配器可以适配它的父对象接口方法或属性。

与其他模式的区别

适配器和桥接器虽然类似,但桥接的出发点不同,桥接的目的是将接口部分和实现部分分离,从而对他们可以更容易的更独立的加以改变。

装饰者模式增强了对象的功能而同时又不改变它的接口,因此它对程序的透明度比适配器要好。

代理模式再不改变它的接口条件下,为另一接口定义一个代理。

门面模式是为了简化一个接口,不提供额外额选择。

适配器则要把一个接口转换为另一个接口,并不会滤除某些能力也不会简化接口。

相关推荐:

JavaScript设计模式系列一:工厂模式

JavaScript设计模式系列三:建造者模式

以上就是JavaScript设计模式系列五:适配器模式的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2776290.html

(0)
上一篇 2025年3月8日 14:46:46
下一篇 2025年3月8日 14:46:51

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Ajax+json实现购物车结算

    这次给大家带来Ajax+json实现购物车结算,Ajax+json实现购物车结算的注意事项有哪些,下面就是实战案例,一起来看一下。 全选 商品 单价 数量 小计 操作 全选 删除选中产品 总价:¥0 登录后复制 body,html,ul,l…

    2025年3月8日
    200
  • JavaScript设计模式系列六:桥接模式

    本篇文章给大家分享的是javascript设计模式系列六:桥接模式 ,有感兴趣的朋友可以看一下 桥接模式 桥接(Bridge)是用于把抽象化与现实化解耦,使得二者可以独立变化,这种类型的设计模式属于结构型模式,它通过提供抽象化和现实化之间的…

    编程技术 2025年3月8日
    200
  • JavaScript设计模式七:装饰者模式

    本篇文章给大家分享了javascript设计模式七:装饰者模式,有兴趣的朋友可以看一下 装饰者模式 装饰者模式提供比继承更有弹性的替代方案。装饰者用于包装同接口的对象,用于通过重载方法的形式添加新功能,该模式可以在被装饰者的前面或后面加上自…

    编程技术 2025年3月8日
    200
  • AJAX跨域请求JSONP获取JSON数据步骤详解(附代码)

    这次给大家带来AJAX跨域请求JSONP获取JSON数据步骤详解(附代码),AJAX跨域请求JSONP获取JSON数据的注意事项有哪些,下面就是实战案例,一起来看一下。 Asynchronous JavaScript and XML (Aj…

    编程技术 2025年3月8日
    200
  • JavaScript设计模式系列八:外观模式

    本篇文章给大家分享了javascript设计模式系列八:外观模式,有感兴趣的朋友可以看一下 外观模式 外观模式是指提供一个统一的接口去访问多个子系统的多个不同的接口,为子系统中的一组接口提供统一的高层接口。使得子系统更容易使用,不仅简化类中…

    编程技术 2025年3月8日
    200
  • JS实现AJAX局部刷新(附代码)

    这次给大家带来JS实现AJAX局部刷新(附代码),JS实现AJAX局部刷新的注意事项有哪些,下面就是实战案例,一起来看一下。 AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),…

    编程技术 2025年3月8日
    200
  • ajax响应json字符串和json数组的方法

    这次给大家带来ajax响应json字符串和json数组的方法,ajax响应json字符串和json数组的注意事项有哪些,下面就是实战案例,一起来看一下。 最近上班太忙,晚上抽空整理一下ajax请求中,后台返回json字符串和json数组的场…

    2025年3月8日
    200
  • js优化原则

    本篇文章给大家及分享的是js优化原则 ,内容挺不错的,有感兴趣的朋友可以看一下 首先,与其他语言不同,JS的效率很大程度是取决于JS engine的效率。除了引擎实现的优劣外,引擎自己也会为一些特殊的代码模式采取一些优化的策略。例如FF、O…

    2025年3月8日
    200
  • 实例详解node.js如何获取SQL Server数据库

    本篇文章给大家分享的是实例详解node.js如何获取SQL Server数据库,内容挺不错的,希望可以帮助到有需要的朋友。 1.在package里引入mssql,并且用npm install 安装 2.在module文件夹下新建一个db.j…

    编程技术 2025年3月8日
    200
  • js实现登录与注册界面

    这篇文章主要为大家详细介绍了js实现登录与注册界面,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 完成登录与注册页面的HTML+CSS+JS,其中的输入项检查包括: 用户名6-12位 首字母不能是数字 只能包含字母和数字 密码6-12位…

    2025年3月8日
    200

发表回复

登录后才能评论