1.什么是适配器模式
适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。通过增加一个新的适配器类来解决接口不兼容的问题,也就是使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。
2.如何实现
简单来说就是在一个适配器接口中调用另外一个类的方法。
- 适配器:adapter(实现目标接口的类)
- 适配者(被适配的对象):adaptee
- 目标接口:target接口
2.1 对象适配
对象适配器则是通过关联来完成
//被适配器类
public class Adaptee{
public void adapteeRequest() {
System.out.println("被适配的方法");
}
}
//目标接口类
public interface Target{
void request();
}
//适配器类
public class MyAdapter implements Target{
//创建一个被适配的对象
Adaptee adaptee = new Adaptee();
@Override
public void request() {
System.out.println("适配器方法");
adaptee.adapteeRequest();
}
}
2.2 类适配器
类适配器通过继承来实现,通过接口适配实现了在新接口 Target 中适配旧的接口或类 Adaptee
//被适配器类
public class Adaptee{
public void adapteeRequest() {
System.out.println("被适配的方法");
}
}
//目标接口类
public interface Target{
void request();
}
//适配器
public class MyAdapter2 extends Adaptee implements Target{
@Override
public void request() {
System.out.println("适配器方法");
super.adapteeRequest();
}
}
对象适配器与类适配器不同之处在于,类适配器通过继承来完成适配,对象适配器则是通过关联来完成
2.3 适配器模式优点
- 类适配器就是通过继承适配者对象实现,适配器就是适配者的一个子类,修改一些适配者的方法比较简便。
- 对象适配器可以添加多个不同的适配者,只需要在适配器中创建其他适配者的对象
2.4 适配器模式的使用
- 系统需要使用一些现有的类,而这些类的接口(如方法名)不符合系统的需要,甚至没有这些类的源代码。
- 想创建一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作。
适配器模式通过转换接口使不兼容的类协同工作。本文介绍了对象适配和类适配两种实现方式,强调了适配器模式在解决接口不兼容问题上的优势,并探讨了其在实际开发中的应用场景。

被折叠的 条评论
为什么被折叠?



