设计模式 - 学习笔记 - 适配器模式AdapterPattern
发布日期:2021-06-30 14:54:09
浏览次数:2
分类:技术文章
本文共 1348 字,大约阅读时间需要 4 分钟。
设计模式 - 学习笔记 - 适配器模式AdapterPattern
学习总结
- 适配器就是:扩展坞、转换器、充电头。
- 解决的问题就是将一个目标不支持的接口,转变成一个目标支持的接口。
- 典型场景就是功能都具备,衔接处出了问题。比如:一个方法原来的参数类型是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; } @Override public 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接收到电力。。。
参考资料
转载地址:https://jerryjin.blog.csdn.net/article/details/115446962 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
不错!
[***.144.177.141]2024年04月26日 12时15分47秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Python学习指南,看这篇清晰多了!
2019-05-01
命名难,难于上青天
2019-05-01
史上最烂项目:苦撑12年,600多万行代码...
2019-05-01
没钱没公司,怎么做一款付费产品
2019-05-01
查询亿级数据毫秒级返回!Elasticsearch 是如何做到的?
2019-05-01
FastAPI 构建 API 服务,究竟有多快?
2019-05-01
为什么Quora选择用Python语言?
2019-05-01
一劳永逸学编程的方法
2019-05-01
代码整洁之道-编写 Pythonic 代码
2019-05-01
树莓派程序开机自启动
2019-05-01
连锁门店无线通信方案
2019-05-01
配置Lotus Domino集群视频详解
2019-05-01
Linux软件万花筒
2019-05-01
全球开源软件发展趋势分析
2019-05-01
Linux系统安全加固(一)
2019-05-01
Linux常用的安全工具
2019-05-01
python 多进程之进程池的操作
2019-05-01
flask整理之 flask程序中的debug模式
2019-05-01
比特币,父母这一辈能接受吗?
2019-05-01