JavaScript 適配器模式

20190721235234.png

1. JavaScript 適配器模式

舊接口格式和使用者不兼容的狀況下須要加一個適配轉換接口,無須要改變舊的接口格式函數

eg: 電源適配器this

實現步驟

  • 針對 A 類建立一個 B 轉換類
  • B 類中的 constructor 初始化中建立一個實例 instance
  • 利用類的多態特性覆蓋 A 類的方法

代碼實現

class 語法

class Plug {
    constructor(type) {
        this.type = type
    }
    getType() {
        return this.type
    }
}

class Adapter {
    constructor(oldType, newType) {
        this.plug = new Plug(oldType) // 初始化實例
        this.oldType = oldType
        this.newType = newType
    }
    getOldType() {
        return this.oldType
    }
    getType() { // 覆蓋
        return this.newType
    }
}

let adapter = new Adapter('hdmi', 'typec')
let res = adapter.getType()
res // typec

res = adapter.getOldType()
res // hdmi
複製代碼

函數式

let hdmi = {
    getType() {
        return 'HDMI'
    }
}

let typeC = {
    getType() {
        return 'type-c'
    }
}

function typeCAdapter(plug) {
    return {
        getType() { // 覆蓋
            return hdmi.getType()
        }
    }
}

res = typeCAdapter(typeC).getType()
res // HDMI
複製代碼
相關文章
相關標籤/搜索