迷思 2018-05-14
适配器模式,顾名思义就是适配之用,一般场景就是,需要的是目标接口,但只有源接口,且源接口和目标接口不一致,这时候就需要一个中间过渡的转换器,这个转换器实现了目标接口,同时也可以执行源接口的逻辑。
打个形象的比喻,就好比你现在有一个两相的插头,但是插座是三相的,这样你硬插肯定是不行的,这时你就需要一个插线板(就是适配器的角色),一边你两相的插头可以插在它上面,它的插头也可以插在三相的插座上。
适配器模式主要的角色有:源接口, 目标接口,适配器。 下面直接上代码:
1、源接口Adaptee
package com.hd.adapter;
public interface Adaptee {
    void doAdaptee();
}2、源接口实现类
package com.hd.adapter;
public class MyAdaptee implements Adaptee {
    @Override
    public void doAdaptee() {
        System.out.println("I am adaptee");
    }
}3、目标接口Target
package com.hd.adapter;
public interface Target {
    void doTarget();
}4、适配器Adaptor
它既实现了Target 接口,内部又持有源接口的引用,在目标接口的方法实现里,调用源接口的方法。
package com.hd.adapter;
public class Adaptor implements Target {
    private Adaptee adaptee;
    public Adaptor(Adaptee adaptee){
        this.adaptee = adaptee;
    }
    @Override
    public void doTarget() {
        adaptee.doAdaptee();
    }
}5、写一个测试类:
package com.hd.adapter;
public class TestAdaptor {
    public static void main(String[] args){
        Adaptee adaptee = new MyAdaptee();
        Target target = new Adaptor(adaptee);
        target.doTarget();    // I am adaptee} }
其实适配器模式在实际项目里用的比较少,主要用来重构原来项目的时候会用到,例如以前的接口比较重要,或者用的地方比较多,不方便随意更改接口,但是又要实现新接口的功能,这样就会用到适配器模式了。
未完待续。。。
前几篇介绍了设计模式的特性并且详细讲解了4种创建型模式,创建型模式是负责如何产生对象实例的,接下来讲讲结构型模式。结构型模式是解析类和对象的内部结构和外部组合,通过优化程序结构解决模块之间的耦合问题。