Java适配器设计模式
定义
适配器模式(Adapter Pattern)是结构型设计模式的一种,适配器模式的定义是:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。
对应角色
适配器模式中主要存在三个角色:
- 目标(Target)接口:当前系统业务所期待的接口,它可以是抽象类或接口,也可以是具体类。
- 适配者(Adaptee)类:它是被访问和适配的现存组件库中的组件接口。
- 适配器(Adapter)类:它是一个转换器,通过继承或引用适配者的对象,把适配者接口转换成目标接口,让客户按目标接口的格式访问适配者。
优缺点
优点
文章来源:https://www.toymoban.com/news/detail-555304.html
- 将目标类和适配者类解耦。
- 增加了类的透明性和复用性,将具体的实现封装在适配者类中,对于客户端类来说是透明的,而且提高了适配者的复用性。
- 灵活性和扩展性都非常好,符合开闭原则。³
缺点
文章来源地址https://www.toymoban.com/news/detail-555304.html
- 对于类适配器来说,更换适配器的实现过程比较复杂。³
应用场景
- 系统需要使用现有的类,而这些类的接口不符合系统的需要。
- 想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作。
- 需要一个统一的输出接口,而输入端的类型不可预知。¹
实例
// 目标接口
interface Target {
void request();
}
// 适配者类
class Adaptee {
public void specificRequest() {
System.out.println("适配者中的业务代码被调用!");
}
}
// 类适配器类
class ClassAdapter extends Adaptee implements Target {
public void request() {
specificRequest();
}
}
// 对象适配器类
class ObjectAdapter implements Target {
private Adaptee adaptee;
public ObjectAdapter(Adaptee adaptee) {
this.adaptee = adaptee;
}
public void request() {
adaptee.specificRequest();
}
}
// 客户端代码
public class AdapterPattern {
public static void main(String[] args) {
System.out.println("类适配器模式测试:");
Target target = new ClassAdapter();
target.request();
System.out.println("对象适配器模式测试:");
Adaptee adaptee = new Adaptee();
Target target2 = new ObjectAdapter(adaptee);
target2.request();
}
}
到了这里,关于Java适配器设计模式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!