美文网首页
设计模式之6适配器模式

设计模式之6适配器模式

作者: 钱学敏 | 来源:发表于2018-06-10 22:00 被阅读0次

定义

适配器模式(Adapter)是将一个类(对象)的接口(方法或属性)转换成客户希望的另外一个接口(方法或属性),适配器模式使得原本由于接口不兼容而不能一起工作的那些(对象)可以一起工作。

作用及注意事项

模式作用

  1. 使用一个已经存在的对象,但其方法或接口不符合你的要求;
  2. 创建一个可复用的对象,该对象可以与其他不相关或者不可见的对象协同工作。
  3. 使用已经存在的一个或多个对象,但是不能进行继承已匹配它的接口。

注意事项:

与代理模式的区别,代理模式是不改变原来的接口,适配器模式是原来的接口不符合规范。

实例

假如之前写好的代码如下

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()

相关文章

网友评论

      本文标题:设计模式之6适配器模式

      本文链接:https://www.haomeiwen.com/subject/rwpqeftx.html