JAVA设计模式之一适配器模式

适配器模式

首先我们要了解到什么是适配器,然后我们用适配器能干嘛,生活中常见的例子。

  1. 适配器模式就是把两个互不关联的东西通过适配器来关联使用
  2. 用适配器可以节省代码重复量,后期维护便利,且符合人的逻辑思维
  3. 充电宝+安卓的数据线+想要充苹果手机

这里的例子是以(Computer)电脑,(Adapter)转接头,(Adaptee)网络源为例子,(NetToUsb)是符合人的逻辑思维,接口类

Computer.java

package 适配器模式;
public class Computer {//目标程序//电脑需要连接上转接器才可以上网,传一个转接头public void net(NetToUsb adapter) {//上网的方法需要一个转接头adapter.handleRequest();}public static void main(String[] args) {// TODO 自动生成的方法存根//电脑,适配器,网络Computer computer=new Computer();//电脑Adapter adapter=new Adapter();//转接适配器Adaptee adaptee=new Adaptee();//网络computer.net(adapter);}
}

Adaptee .java

public class Adaptee {//网络public void Request() {System.out.println("连接到网络,可以上网了!");}
}

NetToUsb.java

package 适配器模式;
public interface NetToUsb {//作用:处理请求让网线连接到电脑Usbpublic void handleRequest();
}

Adapter.java

第一种是靠单一继承关系,有局限性,只能对应一个专属的目标网络,换了地方办公连接别人网线无法实现
package 适配器模式;
//1.继承(类适配器,单继承)
//2.组合(对象适配器:常用)
public class Adapter extends Adaptee implements NetToUsb {//真正的适配器,   需要连接到源程序的网线和电脑的usb@Overridepublic void handleRequest() {super.Request();}
}

Adapter2.java

第二种是传的对象,比如要的网络源,我们传一个网络对象,只要有网络类也就是有网络的地方可以传进来就能让电脑上网
package 适配器模式;
//1.继承(类适配器,单继承)
//2.组合(对象适配器:常用)
public class Adapter2  implements NetToUsb {//真正的适配器,   需要连接到源程序的网线和电脑的usb//传对象,就不用像继承一样只能固定网线,可以随处办公private Adaptee adaptee;public Adapter2(Adaptee adaptee) {this.adaptee=adaptee;} @Overridepublic void handleRequest() {adaptee.Request();}
}

学设计模式的初衷:
1.能够发散且让你设计代码的时候更有逻辑
2.能够在面试中起到作用
3.能够读懂某些源码,例如Springboot里有大量适配器

几个步骤让你学会JAVA的适配器模式相关推荐

  1. 容我喝一杯 java_花一杯茶的时间,学会Java反射(实用篇)

    前言 之前,我写了一篇关于java反射的使用--花一杯茶的时间,学会Java反射(基础篇),今天就拿一些实例和应用给大家看看如何在项目中用反射. 实例 反射可以提高代码的扩展性,低耦合,高内聚.就拿工 ...

  2. 人工智能用python还是java_学会java和python语言,可以开始搞人工智能吗?

    作为一名软件开发工程师,个人认为,当你学会Java和Phthon语言使用后,不建议你直接上手人工智能.下面我来说一下个人看法: 人工智能领域门槛较高 人工智能对于一般同学而言,其入门门槛相对较高,你虽 ...

  3. 一个人自学会java有用吗,大连java程序员培训经历(自学Java可以吗)

    大连java程序员培训经历,很多人在了解大连java培训的时候时常抱怨,怎么那么难呢?为了帮助大家了解,小编整理了一份学习大礼包自学Java可以吗,Java语言的稳健性,Java和C++的区别. 自学 ...

  4. 如何快速学会java编程?

    随着互联网时代的发展,越来越多的人开始学习和使用java语言来进行编程开发,其中不乏有不少零基础的同学,大家都想知道怎么样才能更快速的学会Java编程,下面小千就给大家几个建议,跟着做一定没错的. 快 ...

  5. 学会java基础能找工作吗?

    有不少正在学习java的小伙伴问小千,我现在学会了Java基础能不能出去找工作呢?今天小千就来带大家分析一下到底行不行. 标题初级Java招聘需求 刚刚学会Java基础,那么我们就只能去找一份初级Ja ...

  6. java环境变量的配置_一文带你学会Java环境变量配置(小白向)

    很多人初学Java的时候,因为Java环境变量的配置卡的心烦意乱. 又有很多人百度上翻来翻去,得到的答案五花八门,让你头晕眼花. 你肯定也在想,不就是个环境变量的配置吗?为什么搜了那么多答案,依然不能 ...

  7. 学会java要多久_多长时间可以学会Java?

    爱尚速成手册了解一下,时下流行速成,在这个it告诉发展的时代,程序员虽然被人吐槽了无数次,但是依然是个的饭碗,它高薪,工作环境好,市场环境好,就业率高.所以好多人咨询爱尚实训的小编,多久能学会Java ...

  8. eclipse jdk配置_第一节:学会Java前提-手把手教你配置JDK环境变量

    # 前言 大家好,我是 `Vic`,今天给大家带来`学会Java前提-手把手教你配置JDK环境变量`的概述,希望你们喜欢 # 下载地址 下载jdk,和eclipse就比较简单了,提供JDK 9 地址: ...

  9. ☀️苏州程序大白一文让你学会Java Servlet基础☀️《❤️记得收藏❤️》

    ☀️苏州程序大白一文让你学会Java Servlet基础☀️<❤️记得收藏❤️> 目录

最新文章

  1. 编写纳新网站后端的相关知识总结
  2. 用户名字符串和密码字符串登录验证
  3. 关于页面有多个验证控件和多个按钮的问题
  4. 【Java源码分析】LinkedList源码分析
  5. [Erlang-0006][OTP] 高效指南 -- 列表解析
  6. EL表达式中格式化日期显示
  7. vs 本地调试(IIS)
  8. QT的mouseMoveEvent事件失效
  9. pupload 文件分块 php,基于Plupload实现Base64分割的文件上传方案
  10. ubuntu 中怎么安装 jdk 7
  11. flutter能开发游戏吗_不用 H5,闲鱼 Flutter 如何玩转小游戏?-阿里云开发者社区...
  12. arcgis下载并部署/替换底图服务/IIS跨域--参考资料链接
  13. git操作时:遇到提示Unable to create ‘D:/xxx/.git/index.lock‘: File exists.的解决办法解决方案
  14. 科技论文阅读-论文写作-citavi-Latex-word-Grammarly-1checker 小笔记
  15. C语言:表白(多彩小心心)
  16. 访问FTP站点下载文件,提示“当前的安全设置不允许从该位置下载文件”
  17. 轻量而敏捷的工业组态软件UI设计工具-ConPipe Studio 2022
  18. 记录一下自己的本本,DELL 640M铲掉XP,重装VISTA的过程
  19. Zynq中FPGA上电时序
  20. 965年10元纸币收藏价值

热门文章

  1. vue.js 利用canvas绘制仪表盘圆环进度条-带动画
  2. 惠普计算机安转不上xp,WinXP系统电脑不能安装惠普打印机驱动该如何解决-电脑自学网...
  3. 城市地下综合管廊安全运营与智慧管控的分层架构研究
  4. ocp跟oce的区别 oracle_Oracle PL/SQL实战
  5. 15款经典图表软件推荐 创建最漂亮的图表
  6. 2022P气瓶充装判断题及答案
  7. 封装自己专属的真正的纯净版Windows系统过程记录(1)——封装环境准备
  8. 加载flash必备的ShockwaveFlash控件属性
  9. 获取工作组作为域名的方法
  10. uni-app 入门之 nvue (weex) 爬坑记