JavaScript设计模式之适配器模式介绍
适配器模式说明
说明:适配器模式,一般是为要使用的接口,不符本应用或本系统使用,而需引入的中间适配层类或对象的情况;
场景:就好比我们买了台手机,买回来后发现,充电线插头是三插头,但家里,只有两插头的口的插座,怎么办?为了方便,也有为能在任何地方都能充上电,就得去买个通用充电适配器;这样手机才能在自己家里充上电;不然只能放着,或跑到有这个插头的地方充电;
实际开发环境下,由于旧的系统,或第三方应用提供的接口,与我们定义的接口不匹配,在以面向接口编程的环境下,就无法使用这样旧的,或第三方的接口,这时我们就使用适配类继承待适匹配的类,并让适配类实现接口的方式来引入旧的系统或第三方应用的接口;
这样使用接口编程时,就可以使用这个适匹配类,来间接调用旧的系统或第三方应用的接口。
在Javascript要实现类似动态面向对象语言的适配器模式的代码,可以使用到prototype的继承实例来实现;因为是基于接口约束的,但是Javascript没有接口这号东西,我们去掉接口这一层,直接实现接口实现类Target,模拟类似的源码出来;
源码实例
1.待适配的类及接口方法:
functionAdaptee(){
this.name="Adaptee";
}
Adaptee.prototype.getName=function(){
returnthis.name;
}
2.普通实现类[由于Javascript中没有接口,所以就直接提供实现类]
functionTarget(){
this.name="Target";
}
Target.prototype.queryName=function(){
returnthis.name;
}
3.适配类:
functionAdapte(){
this.name="";
}
Adapte.prototype=newAdaptee();
Adapte.prototype.queryName=function(){
this.getName();
}
4.使用方法:
varlocal=newTarget();
local.queryName();//调用普通实现类
varadapte=newAdapte();
adapte.queryName();//调用旧的系统或第三方应用接口;
其他说明
上面第四步,varlocal以及varadapte类似像Java,C#这样的面向对象语言中接口引用指定,如:
interfaceTarget{
publicStringqueryName();
}
//接口引用指向
Targetlocal=newRealTarget();//即上面Javascript的Target实现类
local.queryName();
//适配器
Targetadapte=newAdapte();
adapte.queryName();
可见适配器类是连接接口与目标类接口的中间层;就是用来解决,需要的目标已经存在了,但我们无法直接使用,不能跟我们的代码定义协同使用,就得使用适器模式,适配器模式也叫转换模式,包装模式;
相关文章
- JavaScript设计模式—-策略模式[通俗易懂]
- 【说站】javascript装饰者模式是什么
- javascript html转换成markdown,如何使用Turndown使用JavaScript将HTML转换为Markdown[通俗易懂]
- 「设计模式 JavaScript 描述」策略模式
- 「设计模式 JavaScript 描述」命令模式
- JavaScript常用基础算法「建议收藏」
- javascript设计模式-观察者模式
- 一个javascript参数的小问题
- 用javascript和css模拟select的脚本
- IE和Firefox下javascript的兼容写法小结
- Javascript匿名函数及其代码模式原理
- JavaScript设计模式之组合模式解析
- javascript模式设计之工厂模式学习心得
- javascript模式设计之工厂模式详细说明
- 如何用JavaScript动态呼叫函数(两种方式)
- JavaScript的Module模式编程深入分析
- 使用javascript为网页增加夜间模式
- javascript设计模式之工厂模式示例讲解
- ruby、javascript、php中的观察者模式实现代码
- JavaScript函数模式详解
- JavaScript中判断整字类型最简洁的实现方法
- javascript抽象工厂模式详细说明
- 浅析Javascript中“==”与“===”的区别
- JavaScript设计模式之代理模式介绍
- JavaScript设计模式之原型模式(Object.create与prototype)介绍
- JavaScript设计模式之单件模式介绍
- JavaScript实现列出数组中最长的连续数
- JavaScript中实现异步编程模式的4种方法