设计模式学习笔记(用到了就更新)

创建型模式(5个)

结构型模式(7个)

适配器模式 Adapter 

通过一个“适配器类”,让原本接口不兼容的两个类可以协同工作。

适配器模式的三个角色

  1. 目标类(Target)要使用的接口

  2. 被适配类(Adaptee)已经存在的类,但是它的接口和目标类不一致

  3. 适配器类(Adapter)Target接口的请求转换为对Adaptee的调用

两种适配器实现方式

类型实现方式特点
类适配器使用继承,适配器继承 Adaptee 并实现 Target不推荐,因为 Java 不支持多继承
对象适配器使用组合,在适配器中持有 Adaptee 对象推荐,灵活

对象适配器案例

package adapter;

/**
 * <p>
 * 描述: 目标类
 * 用来定义所需的抽象类或接口
 * </p>
 *
 * @Author huhongyuan
 */
public interface USB {
    void chargeWithUSB();
}
package adapter;

/**
 * <p>
 * 描述: 被适配类
 * </p>
 *
 * @Author huhongyuan
 */
public class TypeC {
    void chargeWithTypeC() {
        System.out.println("使用TypeC充电");
    }
}
package adapter;

/**
 * <p>
 * 描述: 适配器类
 * </p>
 *
 * @Author huhongyuan
 */
public class TypeC2USBAdapter implements USB{
    private TypeC typeC;

    public TypeC2USBAdapter(TypeC typeC) {
        this.typeC = typeC;
    }

    @Override
    public void chargeWithUSB() {
        typeC.chargeWithTypeC();
    }
}
package adapter;

/**
 * <p>
 * 描述: 适配器测试
 * </p>
 *
 * @Author huhongyuan
 */
public class AdapterTest {
    public static void main(String[] args) {
        TypeC2USBAdapter adapter = new TypeC2USBAdapter(new TypeC());
        adapter.chargeWithUSB();
    }
}
运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值