适配器模式-java

105 阅读2分钟

适配器模式

适配器模式主要的思想就是,将已经存在的类(我们已经开发好的功能模块)可以通过适配器模式将原有的类适配成我们想要的目标,以达到扩展的目的。这种扩展是非常好的,因为原有的功能模块是经过我们严格测试并上线运行良好的。

适配器模式,主要分为两种一种是通过继承我们称为类适配器模式,一种是通过对象我们称为对象适配器模式,因为java只支持单继承所以类适配器的扩展性也是有限制的,所以类适配的使用是很少,我们比较常用对象适配器模式。

适配器模式角色:

  1. 目标:我们想要实现的目标
  2. 适配者:已经存在的那个功能模块
  3. 适配器:将已经存在的功能模块适配成我们想要实现的目标

例子:我们适配String将toString方法适配成不仅打印字符串还要在字符串下面添加下划线。

目标角色:MyString

适配者:String

适配器:StringAdapter 要实现目标接口,然后聚合适配者

目标代码

/**
 * 目标接口
 */
public interface MyString {
    // 打印字符串并加下划线
    void myToString();
}

适配器代码

/**
 * 适配器
 */
public class StringAdapter implements MyString {

    // 聚合被适配类(源类)
    private String str;

    // 构造方法
    public StringAdapter(String str) {
        this.str = str;
    }

    // 将String类的toString方法适配成我们希望的模样
    @Override
    public void myToString() {
        System.out.println(str.toString());

        for (int i = 0; i < str.length(); i++) {
            System.out.print("-");
        }
    }
}

运行结果

00008.png

由于String是final修饰所以不能被继承,这里就不演示啦。类适配模式要继承适配者和实现目标接口,思想都是一样的啦。