适配器模式
适配器模式就是将一个类的接口转换成我们希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能在一起工作的类可以在一起工作。
角色
目标接口(Target):希望的接口。可以是具体的类,或者接口。
需要适配的类(Adaptee):需要适配的类,或者适配者的类。
适配器(Adapter):通过包装一个需要适配的对象,把原接口转换成目标接口。
Demo:
//接口规则
public interface Target {
public void handleReq();
}
//适配器,继承接口文档,并且实现对应的方法
public class Adpatee implements Target{
@Override
public void handleReq() {
System.out.println("完成客户端的要求");
}
}
//接口的具体实现类,同时继承适配器类,这样就可以使用其中的方法,完成适配
public class TargetImpl extends Adpatee implements Target{
@Override
public void handleReq() {
super.handleReq();
}
}
客户端调用
public class Client {
public static void test(Target t) {
t.handleReq();
}
public static void main(String[] args) {
Target t = new TargetImpl();
test(t);
}
}
上面是通过类继承的方法来实现的,缺点就是类只能单继承,不能实现多个类
解决方法:
通过在类中创建对象的方式进行处理
public class TargetImpl extends Adpatee implements Target{
private Adpatee a;
public TargetImpl(Adpatee a) {
super();
this.a = a;
}
@Override
public void handleReq() {
a.handleReq();
}
}
public class Client {
public static void test(Target t) {
t .handleReq();
}
public static void main(String[] args) {
Target t = new TargetImpl(new Adpatee());
test(t);
}
}