设计模式-适配器模式


定义

适配器模式把一个类的接口变换成客户端所期待的另外一种接口,从而使原本不匹配的接口能在一起工作

使用场景

(1)系统需要使用一个现有的类,而此类的接口不符合系统的需要,就是接口不兼容
(2)想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的类,包括一些可能在将来引进的类一起工作
(3)需要一个统一的输出接口,而输出端类型不可预知

UML图

类图

我们可以看到
Target 目标角色 也就是所期待得到的接口
Adaptee 现在需要适配的接口
Adapter 适配器角色 也是核心类把源接口转成目标接口 这里不能是接口 而必须是特定的类

代码案例

原来要适配的接口


public class Volt220  {

    public int getVolt220(){

        return 220;
    }
}

定义要适配的接口


public interface FiveVolt {

    public int getVolt();

}

适配的核心接口


public class VoltAdapter extends Volt220 implements FiveVolt {
    @Override
    public int getVolt() {
        return 5;
    }
}
public class Test {
    public Test() {
        VoltAdapter voltAdapter = new VoltAdapter();
        voltAdapter.getVolt();
    }
}

Android其他使用
在Android上适配器也被用来适配多种数据来源 我们将view的组装交给用户 ListView只需要拿到适配器就可以显示ui,隔离变化 拥抱变化

优缺点

1.更好的复用性
系统需要使用现有的类 而此类的接口不符合系统的需要,那么通过适配器可以让这些功能得到更好的复用
2. 更好扩展性
实现适配器的功能时候,可以调用自己开发的功能,从而自然地扩展系统的功能

缺点
过多使用适配器会让系统非常凌乱,不容易整体把控。


  TOC