适配器模式:可以用来在现有接口和不兼容的类之间进行适配。主要功能是进行转换匹配,目的是复用已有的功能,而不是来实现新的接口
实际中的应用
- jQuery.ajax 适配 Axios
有的使用 jQuery 的老项目使用 ajax 来发送请求,现在的新项目一般使用 Axios,那么现在有个老项目的代码中全是 ajax,如果你挨个修改,那么 bug 可能就跟地鼠一样到处冒出来让你焦头烂额,这时可以采用适配器模式来将老的使用形式适配到新的技术栈上:
实现的方法:
/* 适配器 */
function newAjax(options) {
return axios({
url: options.url,
method: options.type,
responseType: options.dataType,
data: options.data
})
.then(options.success)
.catch(options.error)
}
/* 经过适配器包装 */
ajax = function(options) {
return newAjax(options)
}
ajax({
url: '/demo-url',
type: 'POST',
dataType: 'json',
data: {
name: '张三',
id: '2345'
},
success: function(data) {
console.log('访问成功!')
},
error: function(err) {
console.err('访问失败~')
}
})
适配器模式的优缺点
-
优点
1.复用性好,使原有逻辑得到更好的复用,有助于避免大规模改写现有代码
2.可扩展性良好
3.灵活性好,适配器并没有影响原有功能,不想使用,直接删除即可 -
缺点
可阅读性不太友好,会让系统变得零乱,明明调用 A,却被适配到了 B
网友评论