适配器模式
适配器模式主要的思想就是,将已经存在的类(我们已经开发好的功能模块)可以通过适配器模式将原有的类适配成我们想要的目标,以达到扩展的目的。这种扩展是非常好的,因为原有的功能模块是经过我们严格测试并上线运行良好的。
适配器模式,主要分为两种一种是通过继承我们称为类适配器模式,一种是通过对象我们称为对象适配器模式,因为java只支持单继承所以类适配器的扩展性也是有限制的,所以类适配的使用是很少,我们比较常用对象适配器模式。
适配器模式角色:
- 目标:我们想要实现的目标
- 适配者:已经存在的那个功能模块
- 适配器:将已经存在的功能模块适配成我们想要实现的目标
例子:我们适配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("-");
}
}
}
运行结果
由于String是final修饰所以不能被继承,这里就不演示啦。类适配模式要继承适配者和实现目标接口,思想都是一样的啦。