位置: 编程技术 - 正文

Adapter适配器模式在JavaScript设计模式编程中的运用分析(适配器模型)

编辑:rootadmin

推荐整理分享Adapter适配器模式在JavaScript设计模式编程中的运用分析(适配器模型),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:适配器模式实现,适配器模式菜鸟教程,适配器模型,适配器方案,适配器模型,适配器方案,适配器模式详解,适配器模型,内容如对您有帮助,希望把文章链接给更多的朋友!

定义适配器模式(Adapter)是将一个类(对象)的接口(方法或属性)转化成客户希望的另外一个接口(方法或属性),适配器模式使得原本由于接口不兼容而不能一起工作的那些类(对象)可以一些工作。速成包装器(wrapper)。

适配器的别名是包装器(wrapper),这是一个相对简单的模式。在程序开发中有许多这样的场景:当我们试图调用模块或者对象的某个接口时,却发现这个接口的格式并不符合目前的需求。这时候有两种解决办法,第一种是修改原来的接口实现,但如果原来的模块很复杂,或者我们拿到的模块是一段别人编写的经过压缩的代码,修改原接口就显得不太现实了。第二种办法是创建一个适配器,将原接口转换为客户希望的另一个接口,客户只需要和适配器打交道。

为什么需要采用适配器模式?在开发应用程序时,您往往会需要更换其中某一部分,例如,您用于保存日志或类似性质的内容的一个库。 当您用一个新库来替换它时,新库不太可能有完全相同的接口。 从这里开始,您有两种选择:(1)检查所有代码,并更改指向旧库的一切代码。(2)创建一个适配器,使新库可以使用与旧库相同的接口。显然,在一些情况下,假如您的应用程序很小,或者对旧库的引用很少,更合适的做法是检查完整的代码,并更改它以匹配新库,而不是添加一个新的抽象层,使代码更复杂。 但是,在大多数情况下,创建一个适配器更为实用且节省时间。

JavaScript代码示例

Adapter适配器模式在JavaScript设计模式编程中的运用分析(适配器模型)

一件事情有可能发生时,它就一定会发生。首先让我们来看一下这个小小的LoggerFactory,它让我们能更容易地修改我们使用的日志接口。

在我们调用getLogger时它给我们返回了控制台对象(console)。为了这个练习我们假装console对象只有一个方法——log,并且它只能接收一个字符串类型的参数。 接下来,我们有另一个日志接口,这个会复杂些,因为1)它是用JavaScript实现的,不像console那样是浏览器本身就有的;2)它会把日志通过AJAX发送到服务器,这也意味着我们要对URL数据进行编码(代码里不会具体实现URL编码相关的事,因为它和我们的要讲的适配器模式毫不相干)。当然,它会使用一个和控制台不同的接口。

我们使用了jQuery的AJAX请求,主要是为了节省时间,忽略那些和适配器模式不想干的事情。 我们现在要做的事情就是创建一个适配器,并且改变之前的LoggerFactory让其返回这个适配器而不是控制台对象。

我们对现有代码只做了一行更改,整个程序就可以使用这个新的日志接口了。

复杂适配器

日志接口是个很简单的例子,它只有一个方法,把它直接映射到旧的方法上也没什么难的。大多数情况下并不是如此。你可能会碰到这样的问题,即这些互相映射的函数的参数是完全不同的,旧接口可能根本没有这些参数,你必须自己处理它们。某些情况下,你又必须删掉一些参数,因为新的接口根本用不上它们。如果两个对象之间的接口映射太难,我们就要想想别的办法了,反正我不希望查找和修改数千行旧代码。

实现JavaScript的组成----BOM和DOM详解 我们知道,一个完整的JavaScript的实现,需要由三部分组成:ECMAScript(核心),BOM(浏览器对象模型),DOM(文档对象模型)。今天主要学习BOM和DOM。BOM:BOM提供了

JavaScript 基础函数_深入剖析变量和作用域 函数定义和调用定义函数,在JavaScript中,定义函数的方式如下:functionabs(x){if(x=0){returnx;}else{return-x;}}上述abs()函数的定义如下:function指出这是一个函数

深入理解JavaScript中的对象复制(Object Clone) JavaScript中并没有直接提供对象复制(ObjectClone)的方法。因此下面的代码中改变对象b的时候,也就改变了对象a。a={k1:1,k2:2,k3:3};b=a;b.k2=4;如果只想改变b而保

标签: 适配器模型

本文链接地址:https://www.jiuchutong.com/biancheng/370049.html 转载请保留说明!

上一篇:详解JavaScript实现设计模式中的适配器模式的方法(javascriptz)

下一篇:实现JavaScript的组成----BOM和DOM详解(javascriptz)

  • 离职补偿的扣税比例
  • 增值税纳税申报表在哪里查询
  • 生产企业进项税加计扣除
  • 委托合同有效吗
  • 递延所得税资产和递延所得税负债
  • Xm公司为增值税小规模纳税企业
  • 慈善捐款抵税的会计分录
  • 外购软件用于销售的会计分录
  • 两免三减半的概率是多少
  • 专票只有抵扣联发票联丢失怎么办
  • 供应商给的折扣比发票少怎么做账
  • 个人转租房屋需交税吗
  • 发票失控成本怎么处理
  • 补缴以前年度养老保险能否税前扣除
  • 企业收到外汇的账务处理
  • 营改增金融商品范围
  • 实收资本印花税是一年一交吗
  • 免税项目进项税为什么不可以抵扣
  • 研发费加计扣除做账务处理吗
  • 房屋拆迁过渡费由哪个部门发
  • 苹果手机耳返功能怎么关闭
  • 罂粟是不是草果
  • 软件开发公司排行榜
  • 支付给其他公司的工程项目管理费
  • 非盈利组织稳定吗
  • 投资收益怎么做不影响利润
  • 房屋租赁费如何结转成本
  • moviemaker是什么软件
  • PHP:mcrypt_create_iv()的用法_Mcrypt函数
  • 贷款损失准备的作用
  • 购买商品或服务赠品法律地位
  • php执行脚本
  • oss使用场景
  • 销售下脚料所收的费用
  • 房贷计算器搜房网
  • fsck命令详解
  • 开多少票就要进多少钱吗
  • SQL Server 使用 SET FMTONLY ON 获得表的元数据
  • 母公司收取子公司利润
  • 外购存货的账务处理
  • 个人所得税房屋贷款扣除比例怎么选
  • sql去除重复项
  • 社保缴费基数和医保缴费基数一样吗
  • 先付款后开票怎样写证明
  • 清算时应交税金如何处理
  • 企业稳岗补贴计算公式
  • 销售退回特殊情形有哪些
  • 其他应收款账务核销后放在哪个科目里
  • 预收账款可以长期挂账吗
  • 只有进项税额没有销项税额怎么结转
  • 收到商业汇票怎么入账
  • 来料加工的增值税怎么核算
  • 房地产企业所得税税负率是多少
  • 什么是暂估入库核算
  • 景区如何管理和服务
  • 火车票的进项税率是多少
  • 12月费用1月报销的账务处理
  • 跨年材料票可以入账吗
  • 内帐与外帐的哪个更好
  • 私营公司待摊费怎么算
  • mysql数据库遇到的故障及分析
  • u盘怎么装win7系统步骤
  • win10预览版选哪个
  • 电脑开机显示xp后无反应
  • win7旗舰版32位系统激活
  • safeplugin是什么软件
  • Ubuntu After Install 2.6 帮助你安装 Ubuntu 常用软件
  • explorer.exe进程文件
  • mac的dock栏怎么设置
  • shwiconem.exe - shwiconem是什么进程 有什么用
  • Android游戏开发案例教程小小弹球
  • html收藏夹导入
  • unity怎么导入材质包
  • 浅谈python中的实例方法、类方法和静态方法
  • 用js设置颜色
  • js实现fizzbuzz
  • 悬浮工具栏
  • 江苏省税务局土地增值税清算公告
  • 湖北税务登不上去是怎么了
  • 广告费加计扣除标准
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设