java设计模式之适配器模式

一、解释说明

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

java设计模式之适配器模式_第1张图片

二、案例代码

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、灵活性和扩展性都非常好,符合开闭原则

 

 

 

你可能感兴趣的:(设计模式)