最通俗易懂的适配器模式

简介: 最通俗易懂的适配器模式

适配器模式:

适配器模式 : 将一个类的接口转化成客户希望的另一个接口,适配器模式使得原本由于接口不兼容而不能一起的那些类可以一起工作

通俗点来讲:比如有个二插插座,显然只有二插的充电器可以使用,但是三插充电器也想要使用这个插座怎么办呢?,那就重新做一个即可以满足二插的也满足三插的插座,这个新的插座就是java中的适配器

代码演示

定义一个二插接口,三插接口

public interface PowerA {
    void work();
}
public interface PowerB {
    void work();
}

对应的两个实现类(二插充电器,三插充电器)

public class PowerAImpl implements PowerA {
    @Override
    public void work() {
        System.out.println("二插充电器开始工作");
    }
}
class PowerBImpl implements PowerB {
    @Override
    public void work() {
        System.out.println("三插充电器开始工作");
    }
}

写到这里,我们进行测试:

public class Test1 {
    public static void main(String[] args) {
      getWork(new PowerAImpl);
    }
    public static void getWork(PowerA power) {
        System.out.println("正在连接中...");
        power.work();
        System.out.println("工作结束");
    }
}

问题:

我们发现,写的这个方法只能传入二插的实现类,三插由于接口不兼容无法传递。

解决:

我们可以写一个适配器类,让它们都可以通过。

public class PowerAdapter implements PowerA {
    private PowerB powerB;
    public PowerAdapter(PowerB powerB) {
        this.powerB = powerB;
    }
    @Override
    public void work() {
        powerB.work();
    }
}

大功告成,最终测试

public class Test1 {
    public static void main(String[] args) {
        PowerA powerA = new PowerAImpl();
        getWork(powerA);
        PowerB powerB = new PowerBImpl();
        PowerA adapter = new PowerAdapter(powerB);
        getWork(adapter);
    }
    public static void getWork(PowerA power) {
        System.out.println("正在连接中...");
        power.work();
        System.out.println("工作结束");
    }
}


目录
相关文章
|
1月前
|
Java
深入浅出适配器模式
深入浅出适配器模式
33 0
|
16天前
|
设计模式 Java C#
【设计模式】第六篇:来康康适配器模式
类适配器模式 主要使用继承实现,耦合度高,且在单继承的语言中使用会受限,还需要防止继承带来的一些问题
18 5
|
1月前
|
设计模式 Java
【设计模式系列笔记】装饰者模式
装饰者模式是一种结构型设计模式,它允许你通过将对象放入包含行为的特殊封装类中来为原始对象添加新的行为。这种模式可以动态地将责任附加到对象上,而不影响其它对象。
46 11
|
1月前
|
设计模式 Java
【设计模式系列笔记】适配器模式
适配器模式(Adapter Pattern)是一种结构型设计模式,用于将一个类的接口转换成客户端所期望的另一种接口。它允许原本由于接口不匹配而无法一起工作的类能够协同工作。适配器模式通常涉及一个称为适配器的类,它充当两个不兼容接口之间的桥梁。
50 7
|
7月前
|
设计模式 API 数据库
设计模式系列教程(09) - 适配器模式
设计模式系列教程(09) - 适配器模式
25 0
|
12月前
|
设计模式 安全 Java
深入浅出设计模式 - 装饰者模式
深入浅出设计模式 - 装饰者模式
87 0
深入浅出设计模式 - 装饰者模式
|
11月前
|
设计模式 Java
【设计模式】用通俗易懂的方式讲解工厂模式
在Java编程中,我们常常需要创建各种不同类型的对象来完成各种任务。然而,如果我们直接使用new操作符创建对象,就会导致代码出现严重的耦合性问题
81 0
|
设计模式 存储 SQL
【设计模式】通俗易懂的Java设计模式篇!3
【设计模式】通俗易懂的Java设计模式篇!
|
设计模式 SQL NoSQL
【设计模式】通俗易懂的Java设计模式篇!1
【设计模式】通俗易懂的Java设计模式篇!
|
设计模式 前端开发 Java
【设计模式】通俗易懂的Java设计模式篇!2
【设计模式】通俗易懂的Java设计模式篇!