Java 设计模式之--------适配器模式
发布日期:2021-05-06 19:33:32 浏览次数:21 分类:精选文章

本文共 1476 字,大约阅读时间需要 4 分钟。

适配器是一种在不匹配的系统之间起中介作用的工具,它通过桥接不同的接口或类,使原本无法协同工作的系统能够实现完美集成。就像我们常见的手机耳机接口(3.5mm孔),适配器可以帮助兼容不同品牌和规格的耳机。

适配器主要有三种类型,分别适用于不同的适配场景:

1. 类适配器

类适配器通过继承目标类的实现类来实现方法调用的桥接。例如,假设我们有接口A和接口B,目标是实现A接口的方法,同时调用B接口的实现类。类适配器可以通过继承B接口的实现类(如BImpl),并实现A接口的方法,从而在A接口中调用B接口的方法。

public interface A {    void Arun();}public interface B {    void Brun();}public class BImpl implements B {    @Override    public void Brun() {        System.out.println("B is run");    }}public class AAdapter extends BImpl implements A {    @Override    public void Arun() {        this.Brun();    }}

2. 对象适配

对象适配与类适配在实现方式上有所不同。适配器仍然实现目标接口A,但不通过继承,而是通过持有目标对象(如B对象)并调用其方法。这种方式更灵活,适用于目标对象难以继承或无法继承的情况。

public interface A {    void Arun();}public interface B {    void Brun();}public class BImpl implements B {    @Override    public void Brun() {        System.out.println("B is run");    }}public class AAdapter implements A {    private B b;    public AAdapter(B b) {        this.b = b;    }    @Override    public void Arun() {        b.Brun();    }}

3. 接口适配

接口适配的核心在于实现部分接口方法,而不是全部。通过创建抽象类(Adapter),我们可以选择性地实现所需的方法。这种方式特别适用于不需要全部方法支持或不希望暴露完整接口的情况。

public interface A {    void a();    void b();    void c();}public abstract class Adapter implements A {    @Override    public void a() {}    @Override    public void b() {}    @Override    public void c() {}}public class BAdapter extends Adapter {    @Override    public void a() {        System.out.println("我只需要a");    }}

通过以上方法,适配器能够在不同的场景下实现接口或类的适配,从而在不匹配的系统之间架起桥梁。

上一篇:Java设计模式之-------建造者模式
下一篇:Apache-POI 设置excel单元格样式字体等

发表评论

最新留言

很好
[***.229.124.182]2025年05月10日 00时16分10秒