设计模式 - 学习笔记 - 适配器模式AdapterPattern
设计模式 - 学习笔记 - 适配器模式AdapterPattern
- 学习总结
- UML
- 代码演示
- 电源插座 ElectricalSocket
- 两口插头 Plug
- USB公口
- 手机充电器(适配器) ChargerAdapter
- 客户端 AdapterPatternDemo
- 参考资料
学习总结
- 适配器就是:扩展坞、转换器、充电头。
- 解决的问题就是将一个目标不支持的接口,转变成一个目标支持的接口。
- 典型场景就是功能都具备,衔接处出了问题。比如:一个方法原来的参数类型是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相关推荐
- java/android 设计模式学习笔记(6)---适配器模式
这篇来介绍一下适配器模式(Adapter Pattern),适配器模式在开发中使用的频率也是很高的,像 ListView 和 RecyclerView 的 Adapter 等都是使用的适配器模式.在我 ...
- 设计模式学习笔记(C++实现)(七)--适配器模式
1.适配器模式简介 英文名称 Adapter 主要目的 该模式可以将一个类的的接口,转换成客户想要的另一个接口. 使用场景 1.当要使用的两个类功能相同或者相似,但仅仅是接口不同时. 2.适配器模式代 ...
- 7 种 Javascript 常用设计模式学习笔记
7 种 Javascript 常用设计模式学习笔记 由于 JS 或者前端的场景限制,并不是 23 种设计模式都常用. 有的是没有使用场景,有的模式使用场景非常少,所以只是列举 7 个常见的模式 本文的 ...
- 设计模式学习笔记清单
设计模式学习笔记清单 关于设计模式许多人已经耳熟能详,这段时间结合李建忠的教学视频以及大量网络资料,把这部分过了一遍,整理出学习笔记,而真正的深入学习和理解只能在具体的开发环境中日积月累. ...
- 步步为营 .NET 设计模式学习笔记系列总结
设计模式我从开篇到23种设计模式的讲解总共花了进两个月的时间,其间有很多读者给我提出了很好的建议,同时也指出了我的不足,对此我表示感谢,正是由于很多读者的支持我才能坚持的写到最后.在此表示我真诚的谢意 ...
- 设计模式学习笔记——适配器(Adapter)模式
设计模式学习笔记--适配器(Adapter)模式 @(设计模式)[设计模式, 适配器模式, adapter, 适配器] 设计模式学习笔记适配器Adapter模式 基本介绍 适配器案例 类适配器模式 类 ...
- 设计模式学习笔记(目录篇)
设计模式学习笔记(目录篇) 为了方便查看,特此将设计模式学习笔记系列单独做一个目录. 1 设计模式学习笔记(一:命令模式) 2 设计模式学习笔记(二:观察者模式) 3 设计模式学习笔记(三 ...
- 设计模式学习笔记--享元(Flyweight)模式
写在模式学习之前 什么是设计模式:在我们进行程序设计时,逐渐形成了一些典型问题和问题的解决方案,这就是软件模式:每一个模式描述了一个在我们程序设计中经常发生的问题,以及该问题的解决方案:当我们碰到模式 ...
- 设计模式学习笔记--桥梁(Bridge)模式
写在模式学习之前 什么是设计模式:在我们进行程序设计时,逐渐形成了一些典型问题和问题的解决方案,这就是软件模式:每一个模式描述了一个在我们程序设计中经常发生的问题,以及该问题的解决方案:当我们碰到模式 ...
最新文章
- 常用的linux故障,Linux下常用的故障排查命令行
- 回顾一些重要的CNN改进模型(你真的了解 Convolutional Neural Networks 么)
- 就知道调bert,都不知道加个对比学习吗?
- 《Python知识手册》,高清pdf免费获取
- mysql 在时间上加120s_sqlserver日期推算(年,季度,月,星期推算)
- 如何映射本地虚拟机或远程服务器磁盘到本地
- 怎么把原来的墙拆掉_家装拆除不是简单的砸砸墙,它也是有技术的
- 全能王PDF转换器 V2.0.0.2
- android qq空间 sdk,Android中使用腾讯的SDK完成分享图文到qq空间
- 深度学习在医疗方面的应用 精准医学受追捧
- android逆向笔记,Android逆向分析笔记(1)
- PIC单片机开发环境搭建
- WebService学习总结(6)——WebService常用接口
- 混合高斯模型背景建模原理
- 计算机在线应用竖式,App Store 上的“竖式计算器”
- win服务器系统设置休眠时间,win7系统电脑设置休眠时间的操作方法
- 2017 CCCC预赛总结
- 一张图快速了解五大架构风格
- 微信小程序优惠券列表领取(send-coupon插件)
- 能够更便捷管理菜单栏图标的Bartender 4 Mac中文版