设计模式系列之什么是适配器模式
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章主要介绍"设计模式系列之什么是适配器模式",在日常操作中,相信很多人在设计模式系列之什么是适配器模式问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"设计模式系列之
千家信息网最后更新 2025年01月19日设计模式系列之什么是适配器模式
这篇文章主要介绍"设计模式系列之什么是适配器模式",在日常操作中,相信很多人在设计模式系列之什么是适配器模式问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"设计模式系列之什么是适配器模式"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
1、概述
适配器模式是一种结构型设计模式, 它能使接口不兼容的对象能够相互合作。
2、适用场景
1)当你希望使用某个类, 但是其接口与其他代码不兼容时, 可以使用适配器类。
2)如果您需要使用这样一些类, 他们处于同一个继承体系, 并且他们又有了额外的一些共同的方法, 但是这些共同的方法不是所有在这一继承体系中的子类所具有的共性。可以将这些方法封装在一个装饰器中。
3、实例
有以下场景:
方钉适配圆孔的适配器,方钉想放到圆孔中,则圆孔的直径等于方钉的对角长度。
方钉适配圆孔的适配器,方钉想放到圆孔中,则圆孔的直径等于方钉的对角长度。 定义方钉、圆孔 圆孔: 直径 圆钉: 直径 方钉: 边长
定义方钉:
public class SquareNails { public double getWidth() { return width; } public void setWidth(double width) { this.width = width; } public SquareNails(double width) { this.width = width; } /** * 边长 */ private double width; }
定义圆钉:
public class RoundNails { /** * 直径 */ private double diameter; public double getDiameter() { return diameter; } public void setDiameter(double diameter) { this.diameter = diameter; } public RoundNails(double diameter) { this.diameter = diameter; } }
定义圆孔:
public class RoundHold { /** * 直径 */ private double diameter; public RoundHold(double diameter) { this.diameter = diameter; } public double getDiameter() { return diameter; } public void setDiameter(double diameter) { this.diameter = diameter; } /** * 校验是否合适 * @param roundNails * @return */ public boolean fits(RoundNails roundNails){ if (diameter >= roundNails.getDiameter()){ return true; }else { return false; } } }
定义适配器:
public class SquareNailsRoundHoldAdapter { public RoundNails getResult(SquareNails squareNails){ double width = squareNails.getWidth(); double diagonal = width * Math.sqrt(2); RoundNails roundNails = new RoundNails(diagonal); return roundNails; } }
测试类:
@RunWith(SpringRunner.class) @SpringBootTest(classes = TestApplication.class) public class TestDemo { @Test public void test() { //定义个圆孔 RoundHold roundHold = new RoundHold(10); //定义圆钉 RoundNails roundNails = new RoundNails(10); //定义方钉,边距10 SquareNails squareNails10 = new SquareNails(10); //定义方钉,边距6 SquareNails squareNails6 = new SquareNails(6); //适配器 SquareNailsRoundHoldAdapter squareNailsRoundHoldAdapter = new SquareNailsRoundHoldAdapter(); RoundNails result10 = squareNailsRoundHoldAdapter.getResult(squareNails10); RoundNails result6 = squareNailsRoundHoldAdapter.getResult(squareNails6); //圆钉是否合适 if (roundHold.fits(roundNails)) { System.out.println("this round nails is fits"); } else { System.out.println("this round nails is does not fits"); } //10方钉是否合适 if (roundHold.fits(result10)) { System.out.println("squareNails10 is fits"); } else { System.out.println("squareNails10 is does not fits"); } //6方钉是否合适 if (roundHold.fits(result6)) { System.out.println("squareNails6 is fits"); } else { System.out.println("squareNails6 is does not fits"); } } }
结果:
this round nails is fits squareNails10 is does not fits squareNails6 is fits
4、总结
优点:
1)单一原则:将代码或者数据转换的过程从主要业务逻辑区分出来。
2)开闭原则:只要客户端代码通过客户端接口与适配器进行交互, 你就能在不修改现有客户端代码的情况下在程序中添加新类型的适配器。
缺点:
增加代码复杂度。使用时需要考虑是否在原功能上修改更加简单。
到此,关于"设计模式系列之什么是适配器模式"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
适配
适配器
模式
圆孔
直径
设计模式
设计
代码
合适
方法
义方
学习
客户
客户端
接口
体系
原则
场景
对角
更多
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发和大数据
crm软件开发费用
挖矿软件开发女
《网络安全法》特征
网络安全记录会议内容
安防网络技术文献
服务器云服务器
什么是网络安全保护级
区住建局网络安全应急事件预案
华为5g网络技术优点
天津服务器维修调试虚拟主机
5g网络技术深度分析
t130塔式服务器管理
公司邮箱提示无法写入数据库
成都网络安全教育
网络安全与文明的宣传语
南京艾思特互联网科技有限公司
浙江服务器机柜产地江浙沪
迪茉互联网科技公司简介
服务器 台式机 区别
我如何加强网络安全意识
用小米手机做服务器
华为网络安全密钥
项目节点数据库
德惠智能网络技术咨询诚信经营
手机怎么登陆大话西游老服务器
冠军之夜服务器崩溃视频
数据库中数据什么样子
蜂窝移动网络技术NBIOT
39岁的网络技术员入住养老院