JavaScript 23 種設計模式之 7 適配器模式

概念與特點

概念:
調用不同對象的統一接口,如果是外部提供的名稱不相同的接口,就需要適配器來轉換。比如手機充電器的轉換頭,既可以充電安卓手機,也可以充電蘋果手手機。

特點:

  1. 客戶端通過適配器可以直接調用目標接口。
  2. 複用組件/類/庫。
  3. 將目標類和適配者類解耦,並解決接口不一致的問題。

結構與實現

代理模式包含目標接口,適配者類,適配器類。
目標接口:當前業務所期待的接口,可以是抽象類或接口。
適配者類:現存組件庫中的組件接口。
配適器類:轉換器,通過繼承或者或者引用配置者對象,把適配者接口轉換爲目標接口,讓客戶按目標者的格式訪問適配者。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    ```javascript
   let obj={
        show:function () {
            console.log('方法1')
        }
    };
    let obj1={
        show:function () {
            console.log('方法2')
        }
    };
    //1.調用統一的接口show
    function map(fn) {
        fn.show();
    };
    map(obj);
    map(obj1);
    
    //2.假設obj1對象是外部提供的對象,並且方法名不叫show,而叫display
    obj1={
        display:function () {
            console.log('方法2')
        }
    };
    //3.這時候就需要提供一個適配器接口
    obj1.show = obj1.display();
    //4.map方法可以不用任何改變
    map(obj);
    map(obj1);

```

應用場景

  1. 新開發的系統中需要用到老系統的方法/類/組件。
  2. 使用第三方的接口,接口定義與公司內部接口定義不同。

應用實例

暫無。

總結

適配器模式主要起到轉換 / 翻譯的作用。一方面用於現有的業務邏輯與以前相似,但是調用的方法名不同,或者有其他少許不同之處。另一方面用於在調用第三方接口時,如果第三方接口與內部接口約定不一致,則需要適配器來做轉換。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章