web前端全系列 教程
1839个小节阅读:2244.4k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
适配器模式(Adapter)是将⼀个类(对象)的接⼝(⽅法或属性)转化成客户希望的另外⼀个接⼝(⽅法或属性),适配器模式使得原本由于接⼝不兼容⽽不能⼀起⼯作的那些类(对象)可以⼀些⼯作。别称包装器(wrapper)。
xxxxxxxxxx
171class GooleMap {
2 show() {
3 console.log('渲染⾕歌地图')
4 }
5}
6class BaiduMap {
7 show() {
8 console.log('渲染百度地图')
9 }
10}
11function render(map) {
12 if (map.show instanceof Function) {
13 map.show()
14 }
15}
16render(new GooleMap()) // 渲染⾕歌地图
17render(new BaiduMap()) // 渲染百度地图
但是假如BaiduMap类的原型⽅法不叫show,⽽是叫display,这时候就可以使⽤适配器模式了,因为我们不能轻易的改变第三⽅的内容。在BaiduMap的基础上封装⼀层,对外暴露show⽅法。
xxxxxxxxxx
241class GooleMap {
2 show() {
3 console.log('渲染⾕歌地图')
4 }
5}
6class BaiduMap {
7 display() {
8 console.log('渲染百度地图')
9 }
10}
11// 定义适配器类, 对BaiduMap类进⾏封装
12class BaiduMapAdapter {
13 show() {
14 var baiduMap = new BaiduMap()
15 return baiduMap.display()
16 }
17}
18function render(map) {
19 if (map.show instanceof Function) {
20 map.show()
21 }
22}
23render(new GooleMap()) // 渲染⾕歌地图
24render(new BaiduMapAdapter()) // 渲染百度地图
⼩结