当前位置: 移动技术网 > IT编程>开发语言>JavaScript > javascript设计模式 – 适配器模式原理与应用实例分析

javascript设计模式 – 适配器模式原理与应用实例分析

2020年05月12日  | 移动技术网IT编程  | 我要评论

本文实例讲述了javascript设计模式 – 适配器模式原理与应用。分享给大家供大家参考,具体如下:

介绍:适配器模式的产生也来自具体的问题,拿mac来举例,我不能直接用mac链接vga,不能直接连接网线接口,这是就需要提供一些转接头,来将一些特殊的接口与我们的火线口相链接。

在这个过程中转接头就相当于一类适配器,mac被转接头所扩展,所以mac称之为适配者。适配器的主要作用是将客户端的请求转化为对适配者接口的调用。好多场景下因为接口的不兼容,

多一个参数少一个参数,参数格式不正确,调用顺序等等问题导致无法直接的相互调用,适配器就是这之间作为调和的方法。

定义:将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,其别名为包装器(wrapper)。适配器模式既可以作为类结构型模式,也可以作为对象结构模型。

场景:我们假设一个场景。common组件中提供了对数组排序以及查询的方法,需要同时传递数组以及查询条件。但现在有一个场景,是我能获取到数组的位置和我使用查找结果的位置不在一处。
所以我们腰痛过适配器对这一类场景进行适配兼容。

示例:

var common = function(){
  this.quicksort = function(arr){
    console.log('quicksort')
  };
  this.searchbykey = function(arr,key){
    console.log('sort');
  }
}
 
var operationadapter = function(){
  this.quicksort = new common();
  this.arr = [];
  this.setarr = function(arr){
    this.arr = arr;
  };
  this.sort = function(){
    this.quicksort.quicksort(this.arr);
  };
  this.search = function(key){
    this.quicksort.searchbykey(this.arr, key);
  };
}
 
var adapter = new operationadapter();
adapter.setarr(['1', '12', '123'])
adapter.sort(); //quicksort
adapter.search('123'); //sort

适配器模式总结:

优点:

* 将使用与适配类解耦,通过适配器来解决定制化需求,无需对原有结构进行修改
* 一个适配器可以把多个不同的适配者适配到同一目标。
* 适配器的灵活性和扩展性都非常好,添加修改也很方便,符合开闭原则

缺点:

* 适配器与业务耦合严重,导致适配器的修改需要兼顾所有使用场景

适用场景:

* 系统需要使用现有类,而现有类不符合系统需求

感兴趣的朋友可以使用在线html/css/javascript代码运行工具:测试上述代码运行效果。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网