設計モードの6アダプタモード

1391 ワード

定義#テイギ#
アダプターモード(Adapter)は、1つのクラス(オブジェクト)のインタフェース(メソッドまたはプロパティ)を顧客が望む別のインタフェース(メソッドまたはプロパティ)に変換し、アダプターモードは、インタフェースが互換性がないため一緒に動作できないオブジェクト(オブジェクト)を一緒に動作させる.
作用及び注意事項
モードさよう
  • 既存のオブジェクトを使用しますが、その方法またはインタフェースはあなたの要求に合致しません.
  • は、他の非関連または非可視のオブジェクトと協働して動作することができる多重化可能なオブジェクトを作成する.
  • は、すでに存在する1つ以上のオブジェクトを使用しますが、一致するインタフェースを継承することはできません.

  • 注意事項:
    エージェントモードとは異なり、エージェントモードは元のインタフェースを変更せず、アダプタモードは元のインタフェースが仕様に合致しない.
    ≪インスタンス|Instance|emdw≫
    前に書いたコードは次の通りです.
    var old = {
            test: function() {
              console.log(`    test`)
            },
            go: function() {
              console.log(`    go`)
            }
    
        }
       //  
        old.test()
        old.go()
    

    その後oldオブジェクトは再構築され、次のコードに変更されました.
    function newFn() {
            this.test = function() {
                console.log(`    test`)
            }
        }
        newFn.prototype.gogo = function() {
            console.log(`    gogo`)
        }
    

    呼び出しを変更しないためにアダプタで解決できます
        function shipeiqi() {
            var s = new newFn;// new                ,              .          
            var old = {
                test: function() {
                    s.test()
                },
                go: function() {
                    s.gogo()
                }
            }
            return old;
        }
    
    //                    
        var old = shipeiqi()
        old.test()
        old.go()