设计模式之适配器模式

1.适配器模式概念

        用于将一个类的接口转换成客户希望的另一个接口。适配器模式让原本由于接口不兼容而不能一起工作的那些类可以一起工作

2.适配器组成部分

1)目标接口 (Target): 客户端期望使用的接口。

2)适配者类 (Adaptee): 需要适配的已有类,其接口不符合目标接口的要求。

3)适配器类 (Adapter): 将适配者接口转换为目标接口,充当适配者和目标之间的桥梁。

3.举个栗子:

平常我们使用的用电器时,会遇到插头和插板孔不对的情况,我可以选择买一个接头转换器,然后就能正常使用了

如下图:

4.代码实现

1)ThreePort实现类

package org.xiji.adapter;

/**
 * 接口
 */
public interface ThreePort {
    //输入电源
    String inputPower();

}

2)TwoPort实现类

package org.xiji.adapter;

/**
 * 两孔插头
 */
public class TwoPort {

    //接通电源
    public void connectPower(String power) {
        System.out.println(power+"    两孔插头接通电源正常工作  ");
    }
}

3)ThreeAdapteTwo实现类

package org.xiji.adapter;

/**
 * 适配器
 */
public class ThreeAdapterTwo implements ThreePort{
    private TwoPort twoPort;
    @Override
    public String inputPower() {
        return "输出电源";
    }

    /**
     *
     * 接通电源
     */
    public void connectPower(){
        this.twoPort.connectPower(this.inputPower());
    }

    public ThreeAdapterTwo() {
    }

    public TwoPort getTwoPort() {
        return this.twoPort;
    }

    public void setTwoPort(TwoPort twoPort) {
        this.twoPort = twoPort;
    }

    public ThreeAdapterTwo(TwoPort twoPort) {
        this.twoPort = twoPort;
    }
}

4)测试类

package org.xiji.adapter;

/**
 * 适配器测试类
 */
public class AdapterMain {
    public static void main(String[] args) {
        //创建插头
        System.out.println("创建插头");
        TwoPort twoPort = new TwoPort();
        
        //创建多孔适配器
        System.out.println("创建多孔适配器");
        ThreeAdapterTwo threeAdapterTwo = new ThreeAdapterTwo();

        //两孔插头插入多孔连接器
        System.out.println("两孔插头插入多孔连接器");
        threeAdapterTwo.setTwoPort(twoPort);

        //连接三孔插头电源
        System.out.println("连接三孔插头电源");
        threeAdapterTwo.connectPower();

    }
}

5)测试结果如下

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值