学习设计模式——适配器模式

文章参考于《设计模式的艺术之道》——刘伟

定义:将一个方法或者方法的集合转换成客户希望的另一个方法或者方法的集合。就如同日常生活中的电源适配器,需要将220V电压转变为需要的电压值。

主要有:对象适配器模式、类适配器模式、缺省适配器模式

这里写图片描述

Target(目标类):客户调用的方法,可以是接口或抽象类、也可以是具体类。

Adapter(适配器类):对特定的Target和特定的Adaptee进行适配。

Adaptee(适配者类):客户真正需要调用的业务方法。

① 对象适配器模式(适配器与适配者是关联关系)

/*
    对象适配器模式,使用频率更加高。
    类似于这样的委派形式。
*/
class Adapter extends Target {
    private Adaptee adapatee;

    public Adapter(Adaptee adapatee){
        this.adapatee = adapatee;
    }

    public void request(){
        adapatee.sourceRequest();
    }
}

class Adaptee{
    public void sourceRequest(){
        System.out.println("这才是客户想要调用的方法");
    }
}

class Target {
    //客户方法的接口
    public void request(){};
}

②类适配器模式(适配器与适配者是继承关系)

这里写图片描述

③缺省适配器模式

典型就是Java的GUI中,添加事件处理的过程中广泛使用。通过继承适配器类,来尽量减少无需的方法编写。
总结的说就是,父类中进行空实现,然后子类继承父类,子类中只需要覆盖父类自己想要的方法,而不需要实现父类的全部方法。


对象适配器模式相比于类适配器模式,前者多出的优点
1、一个适配器可以把多个不同的适配者适配到同一个目标。
2、由于适配器和适配者是关联关系(委派关系),根据里氏代换原则,适配器的子类也可以通过同一个适配器进行适配。

使用场景
1、一般用在项目后期增添或者修改功能。
2、系统需要使用一些现有的类,但是类的接口不符合系统的需要,甚至没有源代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值