美文网首页
20.适配器模式-对象适配器模式

20.适配器模式-对象适配器模式

作者: 测试员 | 来源:发表于2019-12-15 13:29 被阅读0次

UML

对象适配器模式

代码实现

需要被适配的类【电源】

适配类【充电器】

定义适配功能的接口【变压器功能】

需要用到适配功能的类【手机-充电时】

测试类【AdapterTest】


需要被适配的类【电源】

package com.yuan.dp.adapter;

/**
 * 提供电源
 * @author Yuan-9826
 */
public class 电源 {
    /**
     * 提供的电源
     */
   private int POWER = 220;

    public int getPOWER() {
        return POWER;
    }
}

适配类【充电器】

package com.yuan.dp.adapter;

/**
 * 充电器实现类
 *
 * @author Yuan-9826
 */
public class 充电器 implements 充电功能接口 {

    /**
     * 被适配类
     */
    电源 power;

    public 充电器(电源 power) {
        this.power = power;
    }

    @Override
    public int inToOut() {
        if (power != null) {
            //流入充电器的电压
            System.out.println("输入的电压是 " + power.getPOWER() + "伏");
            try {
                Thread.sleep(1000);
                System.out.println("经过了很复杂的处理......");
                Thread.sleep(1000);
                int newPower = 5;
                System.out.println("输出的电压是 " + power + "伏");
                return newPower;
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        return -1;
    }
}

定义适配功能的接口【变压器功能】

package com.yuan.dp.adapter;

/**
 * 定义充电器应有的功能
 * @author Yuan-9826
 */
public interface 充电功能接口 {

    /**
     * @return 输出电压
     */
    int inToOut();
}

需要用到适配功能的类【手机-充电时】

package com.yuan.dp.adapter;

/**
 * 手机需要充电 需要直连电源充电
 *
 * @author Yuan-9826
 */
public class 手机 {

    充电器 charger;

    public 手机(充电器 charger) {
        this.charger = charger;
    }

    /**
     * 充电方法
     */
    void charge() {

        int power = charger.inToOut();
        if (power > 5) {
            System.out.println("充电电压 > 5V,手机爆炸了");
        } else if (power < 5) {
            System.out.println("充电电压 < 5V,手机依然没电");
        } else {
            System.out.println("手机用5伏电压正常充电啦~");
        }
    }
}

测试类【AdapterTest】

package com.yuan.dp.adapter;

public class AdapterTest {
    public static void main(String[] args) {
        /**
         * 自带220v电压
         */
        电源 powerSupply = new 电源();

        充电器 charger = new 充电器(powerSupply);

        手机 phone = new 手机(charger);

        phone.charge();

    }
}

相关文章

  • Java设计模式(二)

    talk is cheap show me the code 适配器模式 类适配器模式 接口适配器模式 对象适配器...

  • 适配器模式

    先直观感受下什么叫适配器 适配器模式有类的适配器模式和对象的适配器模式两种不同的形式。 类适配器模式 对象适配器模...

  • [Python-设计模式] 结构型模式- 适配器模式

    适配器模式 适配器模式是一种结构型设计模式, 它能使接口不兼容的对象能够相互合作。 适配器模式结构 对象适配器 实...

  • 设计模式之适配器模式

    适配器模式: 类适配器模式、对象适配器模式、接口适配器模式 1.类适配器模式:新的接口出现了,但是和老的接口不兼容...

  • 设计模式:结构型

    享元模式 (Pools,Message) 代理模式 适配器模式 :类适配器和对象适配器 装饰者模式 外观模式 桥接...

  • 学习iOS设计模式第一章 适配器(Adapter)

    今天学习了iOS设计模式中的适配器模式,适配器有两种模式对象适配器模式-- 在这种适配器模式中,适配器容纳一个它包...

  • 设计模式(Design Patterns)适配器模式(Adapt

    适配器模式主要分为三类:类的适配器模式、对象的适配器模式、接口的适配器模式。 类的适配器模式 场景:将一个类转换成...

  • 适配器模式

    适配器模式主要分为三类:类的适配器模式、对象的适配器模式、接口的适配器模式。适配器模式将某个类的接口转换成客户端期...

  • 【设计模式】适配器模式

    学习文章 iOS设计模式 - 适配器 适配器模式(Adapter):类适配器、对象适配器 类图 说明 类适配器: ...

  • Adapter 设计模式

    adapter 模式详解 类的适配器模式 把适配的类的 API转换为目标类的API。 对象适配器对象的适配器模式 ...

网友评论

      本文标题:20.适配器模式-对象适配器模式

      本文链接:https://www.haomeiwen.com/subject/yjiknctx.html