设计模式-结构型模式之适配器模式

246 阅读2分钟

结构型模式-适配器模式

结构型模式与创建型模式不同,创建型模式是创建对象的方式,结构型模式是从类的结构上实现松耦合,从而扩大整体的类结构,解决一些更大的问题。

image.png

适配器模式

关键词:Adapter

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

举个例子:就像安卓和苹果的手机充电线接口是不一样的,但是可以使用一个转接器来转换就可以达到安卓使用苹果的充电线充电了。

image.png

案例代码

案例中共有4个对象,type-C线、转换器、苹果手机、苹果接口Lightning,这里加入苹果接口Lightning只是为了方便理解。

Type-C线

public class TypeC {  
    public void conn(){  
        System.out.println("Type-C线连接....");  
    }  
}

转换器

转换器为了支持多种转换提供一个接口,由具体的实现去操作转换过程。

public interface Adapter {  
    //提供一个TypeC返回一个Lighting的口
    Lightning adapterTypeC(TypeC typeC);  
}

具体实现:

public class HandlerAdapter implements Adapter{  
    @Override  
    public Lightning adapterTypeC(TypeC typeC) {  
        typeC.conn();  
        System.out.println("转换为Lightning口......");  
        return new Lightning();  
    }  
}

苹果手机

public class IPhone {  
    public void lightning(Lightning lightning){  
        System.out.println("接入lightning线,开始充电.....");  
    }  
}

Lighting线

Lightning线一般是转换器自带的,这里把这个单独拿出来只是为了方便理解。

public class Lightning {  
}

这样一个简单的适配器模式就完成了,通过适配器来将本来无法兼容的两个类结合。

对应java中的现象就是A接口需要一个参数info,B接口返回的是一个参数infoA,通过转换器可以将infoA转换成info,传入A接口使其可以调用。


适配器模式的优点:

  • 可以让两个没有关联的类一起运行
  • 提高了类的复用

适配器模式的缺点:

  • 过多的使用,会让系统非常的零乱