适配器模式:把一个接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法一起工作的两个类能够在一起工作。
适配器模式分两种:类的适配器模式、对象的适配器模式;类图如下:
适配器的三个角色:
1:目标角色(Target):期待得到的接口
2:源角色(Adaptee):需要适配的接口
3:适配器(Adapter):通过它来把源接口转变为目标接口
为了进一步的理解,现在我们用适配器来实现一下“指马为鹿”,不是指鹿为马哦!
//目标
public interface IAnimal {
public String getAnimalName();
}
//源角色
public class Deer {
public String myName() {
return "Im a kind deer";
}
}
//适配器
public class AdaptHorse extends Deer implements IAnimal{
public String getAnimalName() {
return super.myName();
}
}
//测试
public class TestClient {
/**
* main(这里描述这个方法的使用)
* @param args
* void
* @exception
*/
public static void main(String[] args) {
IAnimal horse = new Horse(new Deer());
System.out.println(horse.getAnimalName());
}
}
//----结果
Im a kind deer
适配器的使用场合:
1.系统需要使用现有的类,但是此类的接口不符合系统的需要。
2.想要建立一个类,用于一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作。