首页 >> js开发 >> js代码javascript设计模式 – 适配器模式原理与应用实例分析
js代码javascript设计模式 – 适配器模式原理与应用实例分析
发布时间: 2021年1月13日 | 浏览:
| 分类:js开发
本文实例讲述了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
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代码运行工具:http://tools./code/HtmlJsRun测试上述代码运行效果。在线HTML/CSS/JavaScript代码运行工具在线HTML/CSS/JavaScript代码运行工具http://tools./code/HtmlJsRun关于JavaScript相关内容感兴趣的读者可查看本站专题:《javascript面向对象入门教程》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》javascript面向对象入门教程JavaScript错误与调试技巧总结JavaScript数据结构与算法技巧总结JavaScript遍历算法与技巧总结JavaScript数学运算用法总结希望本文所述对大家JavaScript程序设计有所帮助。
所以我们腰痛过适配器对这一类场景进行适配兼容。场景:示例:示例:
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
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代码运行工具:http://tools./code/HtmlJsRun测试上述代码运行效果。在线HTML/CSS/JavaScript代码运行工具在线HTML/CSS/JavaScript代码运行工具http://tools./code/HtmlJsRun关于JavaScript相关内容感兴趣的读者可查看本站专题:《javascript面向对象入门教程》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》javascript面向对象入门教程JavaScript错误与调试技巧总结JavaScript数据结构与算法技巧总结JavaScript遍历算法与技巧总结JavaScript数学运算用法总结希望本文所述对大家JavaScript程序设计有所帮助。
相关文章:
- jseslint+prettier统一代码风格的实现方法js大全
- jsPostman动态获取返回值过程详解js大全
- js简单了解前端渐进式框架VUEjs大全
- jsecharts实现获取datazoom的起始值(包括x轴和y轴)js大全
- jsVue 解决父组件跳转子路由后当前导航active样式消失问题js大全
- js解决Echarts2竖直datazoom滑动后显示数据不全的问题js大全
- js解决echarts 一条柱状图显示两个值,类似进度条的问题js大全
- js解决echarts中横坐标值显示不全(自动隐藏)问题js大全
- js详解微信小程序入门从这里出发(登录注册、开发工具、文件及结构介绍)js大全
- js解决Vue中的生命周期beforeDestory不触发的问题js大全