您现在的位置是:首页 > 正文

适配器模式

2024-02-29 13:24:13阅读 0
/*
 * 三相插座接口
 */
public interface ThreePlugIf {

    //使用三相电流供电
    public void powerWithThree();
}
public class GBTwoPlug {

    //使用二相电流供电
    public void powerWithTwo(){
        System.out.println("使用二相电流供电");
    }
}
/*
 * 二相转三相的插座适配器
 */

public class TwoPlugAdapter implements ThreePlugIf {

    private GBTwoPlug plug;
    //组合方式
    public TwoPlugAdapter(GBTwoPlug plug){
        this.plug = plug;
    }
    @Override
    public void powerWithThree() {
        System.out.println("通过转化");
        plug.powerWithTwo();

    }

}
/*
 * 采用继承方式的插座适配器
 */
public class TwoPlugAdapterExtends extends GBTwoPlug implements ThreePlugIf {

    @Override
    public void powerWithThree() {
        System.out.print("借助继承适配器");
        this.powerWithTwo();

    }

}
public class NoteBook {

    private ThreePlugIf  plug;

    public NoteBook(ThreePlugIf plug){
        this.plug = plug;
    }

    //使用插座充电
    public void charge(){
        plug.powerWithThree();
    }

    public static void main(String[] args) {
        GBTwoPlug two =  new GBTwoPlug();
        ThreePlugIf three = new TwoPlugAdapter(two);
        NoteBook nb = new NoteBook(three);
        nb.charge();


        three = new TwoPlugAdapterExtends();
        nb = new NoteBook(three);
        nb.charge();

    }

}

参考:http://www.imooc.com/

网站文章

  • 还不会gdb?看这一篇就够了

    还不会gdb?看这一篇就够了

    大家好,我是小李。不管是学习还是工作中,用好gdb,能让你的程序更加丝滑! gdb是什么?它有啥威力...

    2024-02-29 13:24:06
  • poj 2376 清洗的转变 set实现 (程序设计竞赛题集)

    时间限制: 1000MS 内存限制: 65536 K 共提交: 24198 接受: 6056 描述 农夫约翰分配一些他 N (1 < = N < = 25,000) 牛要做一些清洁家务的谷仓。他总是想要一只奶牛,工作的东西清理,已将一天分为 T 的变化 (1 < = T < = 1,000,000),第一次被转移 1 和最后一次是转移 T.

    2024-02-29 13:23:58
  • java数据结构书籍推荐,已拿offer附真题解析

    java数据结构书籍推荐,已拿offer附真题解析

    前言Linux 网络协议栈是根据 TCP/IP 模型来实现的,TCP/IP 模型由应用层、传输层、网络层和网络接口层,共四层组成,每一层都有各自的职责。应用程序要发送数据包时,通常是通过 socket...

    2024-02-29 13:23:27
  • 【目标检测】Cascade R-CNN: Delving into High Quality Object Detection论文理解

    【目标检测】Cascade R-CNN: Delving into High Quality Object Detection论文理解

    文章目录摘要1 介绍2 相关工作3 目标检测3.1 边界框回归3.2 分类3.3 检测质量4 Cascade R-CNN4.1 级联边界框回归4.2 级联检测5 实验结果5.1 实现细节5.1.1 b...

    2024-02-29 13:23:19
  • Hive开窗函数(窗口函数)_四大类型实战案例

    Hive开窗函数(窗口函数)_四大类型实战案例

    去年分别给大家整理了Oracle和HIve开窗函数的相关知识,文见 Hive分析函数整理(开窗函数、窗口函数) 今天再进一步整理窗口函数常用四大类型用法 测试数据集 -- 建表 CREATE DATA...

    2024-02-29 13:23:12
  • jupyter notebook 上传文件夹问题

    jupyter notebook本地直接解压缩后,只能上传单个或多个文件,多个文件夹无法上传。 直接在本地的文件夹下:C:\Users\Administrator(自己的电脑路径),直接拷贝文件夹即可。 ...

    2024-02-29 13:22:42
  • http://www.xueh188.top/index.php/archives/35/

    在 /** * 初始化事件 */ initEvent: function () {}添加table.on('tool(bsDepartmentTable)', page.option);即 init: function () { myTable.on('tool(bsEnterp...

    2024-02-29 13:22:35
  • Linked List Cycle II的总结

    Linked List Cycle II的总结

    文章目录Linked List Cycle II的总结关键知识解题思路简单做法最佳解法题目简答做法最优解法题目地址Linked List Cycle II的总结关键知识链表的处理解题思路一种简单的做法就是顺序遍历每个结点,然后每次都判断该点是否在前面遍历过的结点中,可以采用两层遍历的做法或者是采用set来存储前面的结点,然后每次在set中find这个结点。但是set会将空间复杂度大大增加...

    2024-02-29 13:22:27
  • SOA 和微服务有何区别?

    SOA 和微服务有何区别?

    玩过 Dubbo 的小伙伴应该都有听说过一个概念叫做 SOA,每当我们说起微服务的时候,很多人就会去纠结这和 SOA 有啥关系呀?感觉换汤不换药呀。今天松哥来稍微和小伙伴们讨论下这个话题,我们一起来看看 SOA 和微服务到底有何异同。

    2024-02-29 13:21:58
  • kafka入门教程

    kafka入门教程

    一、下载安装 kafka官网:http://kafka.apache.org/intro (可选)看下官网的introduction 选择get started-quick start ,按照步骤来(...

    2024-02-29 13:21:53