Java | 设计模式-适配器模式
继代理模式后又来到适配器模式啦,想看之前的也有哦。持续更新中哦。让我们一起加油吧兄弟们,干他。
很喜欢一句话:”八小时内谋生活,八小时外谋发展".
你好,如果喜欢,请一起坚持!!
共勉
一张旧照,恍惚间想起旧人
Java设计模式-适配器模式 理论代码相结合
- 一、前言
- 1)概述
- 2)介绍
- 3)角色结构
- 4)使用场景
- 二、类适配器
- 2.1、代码
- 三、对象适配器
- 代码
- 扩展
- 四、总结
- 五、自言自语
一、前言
1)概述
在现实生活中,经常出现两个对象因接口不兼容而不能在一起工作的实例,这时需要第三者进行适配。例如,讲中文的人同讲英文的人对话时需要一个翻译,用直流电的笔记本电脑接交流电源时需要一个电源适配器,用计算机访问照相机的 SD 内存卡时需要一个读卡器等。还有像下面这张图一样:
在软件设计中也可能出现:需要开发的具有某种业务功能的组件在现有的组件库中已经存在,但它们与当前系统的接口规范不兼容,如果重新开发这些组件成本又很高,这时用适配器模式能很好地解决这些问题。
2)介绍
适配器模式(Adapter)的定义如下:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。适配器模式分为类结构型模式和对象结构型模式两种,前者类之间的耦合度比后者高,且要求程序员了解现有组件库中的相关组件的内部结构,所以应用相对较少些。
Adapter模式的宗旨:保留现有类所提供的服务,向客户提供接口,以满足客户的期望。
3)角色结构
适配器模式(Adapter)包含以下主要角色:
- 目标(Target)接口:当前系统业务所期待的接口,它可以是抽象类或接口。
- 适配者(Adaptee)类:它是被访问和适配的现存组件库中的组件接口。
- 适配器(Adapter)类:它是一个转换器,通过继承或引用适配者的对象,把适配者接口转换成目标接口,让客户按目标接口的格式访问适配者。
4)使用场景
适配器模式(Adapter)通常适用于以下场景。
- 以前开发的系统存在满足新系统功能需求的类,但其接口同新系统的接口不一致。(就是所谓的加一层,一层不行就加两层)
Java | 设计模式-适配器模式相关推荐
- java设计模式适配器模式_Java中的适配器设计模式
java设计模式适配器模式 适配器设计模式是一种结构设计模式 ,可以帮助我们连接到通过不同接口公开相似功能的旧版或第三方代码. 适配器的现实世界是我们用来将USB电缆连接到以太网端口的类比. 在设计一 ...
- java设计模式适配器模式_Java解释器设计模式
java设计模式适配器模式 Interpreter design pattern is one of the behavioral design pattern. Interpreter patter ...
- 【设计模式】Java设计模式 - 适配器模式
[设计模式]Java设计模式 - 适配器模式
- JAVA设计模式--适配器模式
目录 1.什么是适配器模式 2.适配器模式的适用场景 3.适配器模式的结构 4.适配器模式应用举例 5.适配器模式的选择 参考文章 1.什么是适配器模式 适配器(Adapter)模式又叫做包装( Wr ...
- Java设计模式——适配器模式【Adapter Pattern】
一.引言 23种设计模式大概分为三大类: 5种(创建型模式):工厂方法模式.抽象工厂模式.单例模式.原型模式.建造者模式. 7种(结构型模式):适配器模式.装饰器模式.代理模式.外观模式.桥接模式.组 ...
- java设计模式-适配器模式
模式导读: 每个人都有自己不同的需要,每个人都有自己能够接受的不同方式,就像是为满足现在快速度发展的社会,几乎人人离不开手机的时代,我们也许会碰到在外出行手机电量不足的情况,这个时候如果你在车站 ...
- java设计模式---适配器模式
类适配器 客户的开发人员定义了一个接口,期望用这个接口来完成整数的求和操作,接口定义如下: Java代码 public interface Operation{ public in ...
- Java设计模式 - 适配器模式
概述 将一个类的接口转换成客户希望的另外一个接口.适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作. 构造器模式 上面的概述可能不是太容易理解,下面举一个例子说明适配器模式的应用. ...
- Java设计模式-适配器模式Adapter
定义:"转换接口" 将一个类的接口转换成客户希望的另外一个接口.Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作. 我理解的"一个类的接口&q ...
最新文章
- 【c语言】蓝桥杯算法提高 c++_ch02_01
- 《软件设计精要与模式》第二版源代码
- Android Studio javadoc 生成注释文档
- 【工作感悟】mysql授权root远程访问
- LightSwitch 2011 数据字段唯一性验证方案
- JSONObject 和 GSON 解析 JSON 数据详解(转)
- python职场应用_大学粗略学习过Python,在进入职场后如何进一步学习Python
- 定了!10 月 8 日!Jupyter Notebook 原生支持将正式来到 VS Code!
- 如何通过Rultor将Maven工件部署到CloudRepo
- 怎么用java实现打字功能_怎么用JAVA编写一个打字游戏
- 论文浅尝 | 基于时序知识图谱的问答
- 面向对象真的需要继承吗?
- android导航栏高度开启,如何在Android中真正获得导航栏高度
- python3 unicodeencodeerror_解决 Python3 下 print 时出现 UnicodeEncodeError 的问题
- 【渝粤教育】国家开放大学2018年春季 3722-21T燃气输配工程 参考试题
- 3.Kong入门与实战 基于Nginx和OpenResty的云原生微服务网关 --- Kong 的管理运维
- 图像分类算法DenseNet论文解读
- 机器学习实战(一)xgboost实战
- 云计算需要学什么内容 学完可以胜任哪些岗位
- 国务院办公厅关于2015年部分节假日安排的通知
热门文章
- 关于SmartForm和ScriptForm的输出格式设置说明(转载)
- ABAP内表(internal table)有关的系统变量
- ABAP 使用DYNP_VALUES_READ来获取屏幕字段值
- arm linux内核调试,kgdb在ARM开发板上调试kernel成功
- python编程学习笔记列表_python编程:从入门到实践学习笔记-函数
- java数组长度最大值_java 数组排序、最大值、最小值 | 学步园
- Python教程:序列的增量赋值
- Python中defaultdict函数的使用方法
- python实现真正的冒泡排序算法(时间复杂度优化版)!
- Python脚本文件和函数的基本运用
- java设计模式适配器模式_Java中的适配器设计模式