设计模式 - 学习笔记 - 适配器模式AdapterPattern

  • 学习总结
  • UML
  • 代码演示
    • 电源插座 ElectricalSocket
    • 两口插头 Plug
    • USB公口
    • 手机充电器(适配器) ChargerAdapter
  • 客户端 AdapterPatternDemo
  • 参考资料

学习总结

  1. 适配器就是:扩展坞、转换器、充电头。
  2. 解决的问题就是将一个目标不支持的接口,转变成一个目标支持的接口。
  3. 典型场景就是功能都具备,衔接处出了问题。比如:一个方法原来的参数类型是P1,现在要P2(仅仅只是类型对不上了)

UML

代码演示

电源插座 ElectricalSocket

public class ElectricalSocket{public void chargeUp(IPlug plug2Hole){System.out.println("插座开始供电。。。");plug2Hole.plugGePower();}
}

两口插头 Plug

接口 IPlug

public interface IPlug {public void plugGePower();
}

实现类

public class Plug implements IPlug {public void plugGePower(){System.out.println("plug接收到电力。。。");}
}

USB公口

USB接口

public interface IUsb {public void usbGePower();
}

实现类

public class Usb implements IUsb {public void usbGePower(){System.out.println("usb接收到电力。。。");}
}

手机充电器(适配器) ChargerAdapter

目的是得到所需要的接口,使用继承还是组合自己看情况来定。

public class ChargerAdapter implements IPlug {private Usb usb;public ChargerAdapter(Usb usb){ this.usb = usb;}@Overridepublic void plugGePower(){System.out.println("手机充电器适配中:【USB】适配到【插头】");usb.usbGePower();}
}

客户端 AdapterPatternDemo

public class AdapterPatternDemo{public static void main(String[] args)   {// 创建插座实例ElectricalSocket electricalSocket = new ElectricalSocket();// 通过手机充电器,将USB插头转为插头IPlug chargerAdapter = new ChargerAdapter(new Usb());// 将插头插插座上(通电)electricalSocket.chargeUp(chargerAdapter);}
}

输出结果

插座开始供电。。。
手机充电器适配中:【USB】适配到【插头】
usb接收到电力。。。

参考资料

图说设计模式:适配器模式
西瓜视频:23种设计模式第八讲:适配器模式

设计模式 - 学习笔记 - 适配器模式AdapterPattern相关推荐

  1. java/android 设计模式学习笔记(6)---适配器模式

    这篇来介绍一下适配器模式(Adapter Pattern),适配器模式在开发中使用的频率也是很高的,像 ListView 和 RecyclerView 的 Adapter 等都是使用的适配器模式.在我 ...

  2. 设计模式学习笔记(C++实现)(七)--适配器模式

    1.适配器模式简介 英文名称 Adapter 主要目的 该模式可以将一个类的的接口,转换成客户想要的另一个接口. 使用场景 1.当要使用的两个类功能相同或者相似,但仅仅是接口不同时. 2.适配器模式代 ...

  3. 7 种 Javascript 常用设计模式学习笔记

    7 种 Javascript 常用设计模式学习笔记 由于 JS 或者前端的场景限制,并不是 23 种设计模式都常用. 有的是没有使用场景,有的模式使用场景非常少,所以只是列举 7 个常见的模式 本文的 ...

  4. 设计模式学习笔记清单

    设计模式学习笔记清单 关于设计模式许多人已经耳熟能详,这段时间结合李建忠的教学视频以及大量网络资料,把这部分过了一遍,整理出学习笔记,而真正的深入学习和理解只能在具体的开发环境中日积月累.      ...

  5. 步步为营 .NET 设计模式学习笔记系列总结

    设计模式我从开篇到23种设计模式的讲解总共花了进两个月的时间,其间有很多读者给我提出了很好的建议,同时也指出了我的不足,对此我表示感谢,正是由于很多读者的支持我才能坚持的写到最后.在此表示我真诚的谢意 ...

  6. 设计模式学习笔记——适配器(Adapter)模式

    设计模式学习笔记--适配器(Adapter)模式 @(设计模式)[设计模式, 适配器模式, adapter, 适配器] 设计模式学习笔记适配器Adapter模式 基本介绍 适配器案例 类适配器模式 类 ...

  7. 设计模式学习笔记(目录篇)

    设计模式学习笔记(目录篇) 为了方便查看,特此将设计模式学习笔记系列单独做一个目录. 1   设计模式学习笔记(一:命令模式) 2   设计模式学习笔记(二:观察者模式) 3   设计模式学习笔记(三 ...

  8. 设计模式学习笔记--享元(Flyweight)模式

    写在模式学习之前 什么是设计模式:在我们进行程序设计时,逐渐形成了一些典型问题和问题的解决方案,这就是软件模式:每一个模式描述了一个在我们程序设计中经常发生的问题,以及该问题的解决方案:当我们碰到模式 ...

  9. 设计模式学习笔记--桥梁(Bridge)模式

    写在模式学习之前 什么是设计模式:在我们进行程序设计时,逐渐形成了一些典型问题和问题的解决方案,这就是软件模式:每一个模式描述了一个在我们程序设计中经常发生的问题,以及该问题的解决方案:当我们碰到模式 ...

最新文章

  1. 常用的linux故障,Linux下常用的故障排查命令行
  2. 回顾一些重要的CNN改进模型(你真的了解 Convolutional Neural Networks 么)
  3. 就知道调bert,都不知道加个对比学习吗?
  4. 《Python知识手册》,高清pdf免费获取
  5. mysql 在时间上加120s_sqlserver日期推算(年,季度,月,星期推算)
  6. 如何映射本地虚拟机或远程服务器磁盘到本地
  7. 怎么把原来的墙拆掉_家装拆除不是简单的砸砸墙,它也是有技术的
  8. 全能王PDF转换器 V2.0.0.2
  9. android qq空间 sdk,Android中使用腾讯的SDK完成分享图文到qq空间
  10. 深度学习在医疗方面的应用 精准医学受追捧
  11. android逆向笔记,Android逆向分析笔记(1)
  12. PIC单片机开发环境搭建
  13. WebService学习总结(6)——WebService常用接口
  14. 混合高斯模型背景建模原理
  15. 计算机在线应用竖式,‎App Store 上的“竖式计算器”
  16. win服务器系统设置休眠时间,win7系统电脑设置休眠时间的操作方法
  17. 2017 CCCC预赛总结
  18. 一张图快速了解五大架构风格
  19. 微信小程序优惠券列表领取(send-coupon插件)
  20. 能够更便捷管理菜单栏图标的Bartender 4 Mac中文版

热门文章

  1. RFC1951的部分翻译及原文(1/2) (转)
  2. IDEA Windows + Mac 快捷键(全)
  3. 基于mapnik的地图符号编辑器功能介绍
  4. 红皮书——红色启示录
  5. PHP 获取网页内容的三种方法
  6. 程序员的工资这么高,为什么还会有人离职?
  7. 在CMD命令行中切换到管理员权限模式
  8. Mac系统下如何创建锁屏快捷键
  9. 电脑开不了机怎么办?如何解决?
  10. 类和对象有点东西(一)