设计模式之道设计iOS

我学设计模式:适配器(Adapter)模式

2015-12-31  本文已影响113人  hoxis

定义:将一个类的接口转化成客户端希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

主要功能是进行转换匹配,从而可以复用已有的功能。通过给适配器对象组合被适配的对象,然后当客户端调用Target时,适配器会将相应的功能委托给被适配的对象去完成。生活中的适配器模式很常见,比如电压转换器、翻译等。

适配器模式中的3个角色

public interface Target{
    public void request();
}
public class ConcreteTarget implements Target{
    public void request(){
        System.out.println("ConcreteTarget doing...");
    }
}
public class Adaptee{
    public void doSomething(){
        System.out.println("Adaptee doing...");
    }
}
public class Adapter extends Adaptee implements Target{
    public void request(){
        super.doSomething();
    }
}
public class Client{
    public static void main(String[] args){
        //原有的业务逻辑
        Target target = new ConcreteTarget();
        target.request();
        //现在增加了适配器角色后的业务逻辑
        Target target2 = new Adapter();
        target2.request();
    }
}

适配器的实现

适配器通常是一个类,一般或让其去实现Target接口,然后再其具体实现里面调用Adaptee。

类的适配器模式

当希望将一个类转换成满足另一个新接口的类时,可以使用类的适配器模式,创建一个新类,继承原有的类Adaptee,实现新的接口即可。

对象的适配器模式

当希望将一个对象转换成满足另一个新接口的对象时,可以创建一个Adapter类,持有原类Adaptee的一个实例,在Adapter类的方法中,调用实例的方法就行。

接口的适配器模式

当不希望实现一个接口中所有的方法时,可以创建一个抽象类Adapter,实现所有方法,我们写别的类的时候,继承抽象类即可。

适配器模式的调用顺序

适配器模式的调用顺序适配器模式的调用顺序

优缺点

优点

缺点

何时使用适配器

适配器模式的本质是:转换匹配,复用功能。通过转换已有的功能实现,从而可以将其匹配成所需的接口。转换匹配是手段,复用功能是目的。


如果觉得有用,欢迎关注我的微信,有问题可以直接交流:

你的关注是对我最大的鼓励!你的关注是对我最大的鼓励!
上一篇 下一篇

猜你喜欢

热点阅读