适配器设计模式
定义:将某一普通类转换成另一个客户希望变成的特殊类。
适配器有2种,一种为类适配器:
类适配器
例子以某一球员为例:
踢球的接口:
/**
* 踢球接口
* @author Clark
*
*/
public interface Play {
public void play();
}
普通球员类:
/**
* 普通球员类,实现踢球接口
* @author Clark
*
*/
public class FootballPlayer implements Play{
@Override
public void play() {
System.out.println("play football!!!");
}
}
坏人类:
/**
* 已存在特殊功能的类,但不适合我们当前所使用的标准类
* @author Clark
*
*/
public class BadPerson {
public void taxEvasion(){
System.out.println("偷税漏税");
}
}
/**
* 偷税漏税的足球运动员,继承偷税漏税人,实现踢球接口
* @author Clark
*
*/
public class BadFootballPlayer extends BadPerson implements Play {
@Override
public void play() {
super.taxEvasion();
}
}
测试类:
public class Main {
public static void main(String[] args) {
FootballPlayer f = new FootballPlayer();
f.play();
BadFootballPlayer messi = new BadFootballPlayer();
messi.play();
}
}
输出:
play football!!!
偷税漏税
对象适配器:
public class BadFootballPlayerM implements Play {
private BadPerson b;
public BadFootballPlayerM(BadPerson b){
this.b = b;
}
@Override
public void play() {
this.b.taxEvasion();
}
}
测试类:
//类适配器
BadFootballPlayerM messiM = new BadFootballPlayerM(new BadPerson());
messiM.play();
输出结果:
偷税漏税