【设计模式四】适配器模式adapter

定义

将一个接口转换成用户希望的另一个接口,适配器模式使接口不兼容的那些类可以一起工作,其别名为包装器(wrapper)

一,类适配器

在这里插入图片描述
类的适配器模式把适配的类的API转换成目标类的API
Adapter继承自Adaptee

Adaptee

public class Adaptee {
    public void method1(){
        Log.e("TAG", "method1: " );
    }
}

Target

public interface Target {
    void method1();

    void method2();
}

Adapter

public class Adapter extends Adaptee implements Target {
    @Override
    public void method2() {
        Log.e("TAG","method2: ");
    }
}

Main

        Adapter adapter = new Adapter();
        adapter.method1();
        adapter.method2();
2020-03-30 17:17:56.146 14234-14234/com.zhangyu.myapplication E/TAG: method1: 
2020-03-30 17:17:56.146 14234-14234/com.zhangyu.myapplication E/TAG: method2: 

二,对象适配器

与类的适配器模式一样,对象适配器模式把被适配类的API转换成目标类的API,与类的适配器模式不同的是,对象的适配器模式不是使用继承关系连接到Adaptee类,而是使用委派关系连接Adaptee。

在这里插入图片描述

Adapter2

public class Adapter2 implements Target {
    private Adaptee adaptee;

    public Adapter2(Adaptee adaptee) {
        this.adaptee = adaptee;
    }

    @Override
    public void method1() {
        adaptee.method1();
    }

    @Override
    public void method2() {
        Log.e("TAG", "method2: ");
    }
}

Main

        Adapter2 adapter2 = new Adapter2(new Adaptee());
        adapter2.method1();
        adapter2.method2();
2020-03-30 17:27:52.099 15018-15018/com.zhangyu.myapplication E/TAG: method1: 
2020-03-30 17:27:52.099 15018-15018/com.zhangyu.myapplication E/TAG: method2: 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值