【设计模式】适配器模式

总结

1.适配器模式作为两个不兼容的接口之间的桥梁。主要是进行转换匹配,以复用现有的接口。
2.一般是实现一个接口,持有一个接口,或者进行对象组合,尽量不要使用继承,毕竟java是单继承的。

两个接口无法兼容,通过适配器来整合资源,从而实现两个接口的通信。

电脑

public interface ComputerFace {
    void surf();

    /**
     * 联网接口
     */
    void connectorA();
}
public class Computer implements ComputerFace{

    private static final String portA="A";

    public Computer(String portA) {
        if (!"A".equals(portA)) {
           throw new RuntimeException("与电脑A端口不匹配");
        }
        this.connectorA();
    }

    @Override
    public void surf() {
        System.out.println("网上冲浪");
    }

    @Override
    public void connectorA() {
        System.out.println("通过接口A连上电脑");
    }
}

网线

/**
 * 网线
 */
public interface DataCableFace {
    /**
     * 信息传递接口类型B
     */
    void connectorB();

}
public class DataCable implements DataCableFace {

    private static final String portB="B";

    public DataCable(String portB) {
        if (!"B".equals(portB)) {
            throw new RuntimeException("与网线B端口不匹配");
        }
        this.connectorB();
    }

    @Override
    public void connectorB() {
        System.out.println("通过接口B连上网线");
    }
}

适配器

/**
 * 适配器
 */
public interface AdapterFace {
}
public class Adapter implements AdapterFace {
    private static final String portA="A";
    private static final String portB="B";
    private static final String portC="C";

    public ComputerFace computer;
    public DataCableFace dataCable;

   public Adapter(ComputerFace computer,DataCableFace dataCable) {
        //连接网线
        this.dataCable=dataCable;
        //连接电脑
        this.computer=computer;
        System.out.println("连接完毕,可以上网了");
    }

}

测试

@Test
void adapterTest(){
     ComputerFace computer = new Computer("A");
     DataCableFace dataCableFace=new DataCable("B");
     Adapter adapter = new Adapter(computer,dataCableFace);
     adapter.computer.surf();
 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值