常用设计模式——适配器模式

适配器模式

概念

将一个类的接口,转换成客户期望的另外一个接口。

image-20200116095238954

实际上适配器有2种,对象适配器和类适配器

对象适配器示例

使用组合的方式实现,不仅可以适配某个类,还可以适配该类的子类。

/**
 * 鸭子
 * @author huangy on 2019-05-26
 */
public interface Durk {

    void quack();

    void fly();

}
/**
 * 火鸡
 * @author huangy on 2019-05-26
 */
public interface Turkey {

    /**
     * 火鸡的叫声
     */
    void gobble();

    void fly();
}
/**
 * 某个火鸡实现
 * @author huangy on 2019-05-26
 */
public class WildTurkey implements Turkey {

    @Override
    public void gobble() {
        System.out.println("WildTurkey gobble");
    }

    @Override
    public void fly() {
        System.out.println("WildTurkey fly");
    }
}
/**
 * 适配器(将火鸡转变成鸭子)
 * @author huangy on 2019-05-26
 */
public class TurkeyAdapter implements Durk {

    Turkey turkey;

    public TurkeyAdapter(Turkey turkey) {
        this.turkey = turkey;
    }

    @Override
    public void quack() {
        turkey.gobble();
    }

    @Override
    public void fly() {
        turkey.fly();
    }
}
public class DuckTest {

    public static void main(String[] args) {
        // 火鸡对象
        WildTurkey wildTurkey = new WildTurkey();

        // 把火鸡对象包装成鸭子
        Durk durk = new TurkeyAdapter(wildTurkey);

        durk.quack();
        durk.fly();
    }

}

类适配器例子

采用继承的方式实现适配器模式。需要多重继承才能实现,java不支持多重继承。

由于使用继承的方式,适配器不用重新实现被适配者(对象适配器也不需要)。必要的时候,也可以覆盖被适配者的行为。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值