java设计模式之适配器模式

一、解释说明

把不能直接使用的功能,通过适配器转换成能使用的功能。如充电插头转换器。

二、案例代码

1、需要适配的类(非usb接口)

package 设计模式.适配器模式;

//不是usb接口的插座
public class NoUsb {
    //插座
    public void socket(){
        System.out.println("不是usb接口的插座");
    }
}

2、目标接口(需要的usb接口)

package 设计模式.适配器模式;

//是usb的插座
public interface Usb {

    //转化方法 返回一个能用的接口
    public void adapt();
}

3、适配器(把非usb接口转化为usb接口)

package 设计模式.适配器模式;

//转化器
public class UsbAdapter implements Usb{

    private NoUsb usb;
    //把非usb接口注入进来
    public UsbAdapter(NoUsb usb){
        this.usb = usb;
    }
    //把非usb接口转为usb接口
    @Override
    public void adapt() {
        usb.socket();
        System.out.println("转换成usb接口啦,好开心");
    }
}

4、客户端(笔记本可以使用usb接口了)

package 设计模式.适配器模式;

//笔记本
public class Cliet {
    public static void main(String[] args) {
        //创建非usb接口
        NoUsb noUsb = new NoUsb();
        //创建适配器
        Usb usbAdapter = new UsbAdapter(noUsb);
        //进行使用
        usbAdapter.adapt();
    }
}

三、适用场景

兼容问题

四、优缺点

优点

1、将目标类和适配者类解耦

2、增加了类的透明性和复用性,将具体的实现封装在适配者类中,对于客户端类来说是透明的,而且提高了适配者的复用性

3、灵活性和扩展性都非常好,符合开闭原则

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值