适配器概念

在计算机编程中,适配器模式将一个类的接口适配成用户所期待的。使用适配器,可以使接口不兼容而无法在一起工作的类协调工作,做法是将类自己包裹在一个已经存在的类中。

JDK对适配器设计模式的应用

InputStreamReader(InputStream in) 
          创建一个使用默认字符集的 InputStreamReader。

并且InputStreamReader继承了Reader(字符流)

所以:InputStreamReader 类本身采用了适配器设计模式,把InputStream(字节流)类型转换为Reader类型(将字节流转换为字符流)。使得程序能够对传过来的InputStream 一个字符一个字符的进行操作

    InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream("D:\\text.txt"),"UTF-8");char c = (char) inputStreamReader.read();

假设InputStreamReader的read()方法从输入流中读取的字符为"好",read()方法实际上执行了以下步骤。

1)从输入流中读取三个字节:229、165和189,这三个字节代表"好"的UTF-8编码。

2)计算出字符"好"的Unicode编码为89和125

3)为"好"分配两个字节的内存空间,这两个字节的取值分别为89和125.为提供读的操作效率,可以用BufferReader来装饰InputStreamReader。

ByteArrayInputStream(byte[] buf) 
          创建一个 ByteArrayInputStream,使用 buf 作为其缓冲区数组。

并且ByteArrayInputStream 继承了InputStream。

所以:ByteArrayInputStream 采用了适配器设计模式,把字节数组转换为输入流类型,使得程序能够对传过来的InputStream一个数组一个数组的进行操作

构造方法 public ByteArrayInputStream(byte[] buf,int offset,int length) 参数buff指定字节数组类型的数据源,参数offset指定从数组中开始读数据的起始下标位置,length指定从数组中读取的字节数

     byte[] buff = new byte[]{1,2,3,4,-1};ByteArrayInputStream bin = new ByteArrayInputStream(buff,3,4);int data = bin.read();while(-1!=data){System.out.println(data);data = bin.read();}bin.close();

打印结果是4 255(-1的二进制表示形式是11111111所以打印出来255)


SpringMVC的HandlerAdapter接口就有SpringMVC默认提供了几个适配器类供我们选择

AbstractHandlerMethodAdapter, AnnotationMethodHandlerAdapter, HttpRequestHandlerAdapter, RequestMappingHandlerAdapter, SimpleControllerHandlerAdapter, SimpleServletHandlerAdapter

这是一篇模拟SpringMVC适配器的实现

转载于:https://www.cnblogs.com/ssskkk/p/9315679.html

JAVA基础—适配器设计模式相关推荐

  1. 黑马程序员-Java基础:设计模式总结

    --Java培训.Android培训.iOS培训..Net培训.期待与您交流! -- Java基础部分设计模式 一.设计模式概述 设计模式(Design pattern)是一套被反复使用.多数人知晓的 ...

  2. Java基础篇--设计模式

    目录 前言 设计模式 创建型模式 单例模式 工厂方法模式 抽象工厂模式 建造者模式 原型模式 结构型模式 适配器模式 桥接模式 组合模式 装饰模式 外观模式 亨元模式 代理模式 行为型模式: 访问者模 ...

  3. java基础之设计模式

    1 设置模式之单例设计模式 概念:保证一个类仅有一个实例,并提供一个访问它的全局访问点. (1)饿汉式: /*** @Description 饿汉式* @author refuel* @version ...

  4. Java基础之设计模式七大原则

    设计模式 目的 代码重用性 可读性 可扩展性-可维护 可靠性 程序呈现高内聚.低耦合的特性 七大原则 -设计模式为什么这样设计的依据 单一职责原则 概念 对类来说的,即一个类应该只负责一项职责.如类A ...

  5. java基础_设计模式_设计基础(小鸭子游戏)

    小鸭子游戏,是好多爱好者接触设计模式.认知设计模式概念的一个入门. 每个初学者的理解不同,我加上自己的理解大体是这样的:前提是处理大规模时,假设池塘中有10000头小鸭子,有红头鸭,野鸭子,木头鸭子等 ...

  6. 结构设计模式 - 适配器设计模式

    结构设计模式 - 适配器设计模式 PANKAJ  17评论 适配器设计模式是结构设计模式之一,其使用使得两个不相关的接口可以一起工作.连接这些不相关接口的对象称为适配器. 目录[ 隐藏 ] 1适配器设 ...

  7. Java 基础学习之字符串的简单操作和适配器设计模式

    一 适配器设计模式 1.适配器是什么? 适配器模式将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作.其别名为包装器(Wrapper) ...

  8. Java设计模式(七):适配器设计模式

    1. 应用场景 在软件开发中,也就是系统的数据和行为都正确,但接口不相符时,我们应该考虑用适配器,目的是使控制范围之外的一个原有对象与某个接口匹配.适配器模式主要应用于希望复用一些现存的类,但是接口又 ...

  9. java基础(六)多线程/设计模式

    这辈子没办法做太多事情,所以每一件都要做到精彩绝伦! People can't do too many things in my life,so everything will be wonderfu ...

  10. java设计模式适配器模式_Java中的适配器设计模式

    java设计模式适配器模式 适配器设计模式是一种结构设计模式 ,可以帮助我们连接到通过不同接口公开相似功能的旧版或第三方代码. 适配器的现实世界是我们用来将USB电缆连接到以太网端口的类比. 在设计一 ...

最新文章

  1. java将输出结果写入csv文件_如何在Java中将数据写入.csv文件?
  2. STM32看门狗总结
  3. IDEA 生成时序图、类图
  4. 第一款青少年搜索引擎“花漾搜索“APP正式上线
  5. mysql解压版怎么添加服务_Windows系统下MySQL添加到系统服务方法(mysql解压版)
  6. moco常用配置参数及实战
  7. 这种思路讲解数据仓库建模,你见过吗?数据人与架构师必看
  8. AI正在打王者荣耀排位赛,背后是腾讯100亿开放新战略
  9. JavaWeb初学者session的使用
  10. Gartner 发布2017 年商业智能和分析平台魔力象限 Tableau 获“领先者”
  11. 鲸云效解读A/B测试,get这一篇就够了
  12. 怎么用wps抽签_【WPS神技能】如何在WPS-Excel表格中制作抽奖小程序?
  13. 〖免杀〗.net程序一键免杀Win10 20H2 Defender
  14. GPS定位+经纬度定位
  15. RF(射频) - VSWR(电压驻波比)
  16. C#中利用NPOI包操作Excel文件
  17. 女孩子没有事业就只能痛苦
  18. 程序员如何转职区块链开发
  19. PLC可编程控制器实训设备
  20. iPhone无法更新,一直卡住在“验证更新中”,如何处理?

热门文章

  1. 设计模式 (二十一) 策略模式
  2. hashCode()和equals()的若干问题
  3. 体系结构方案 - 临时性数据计算
  4. Jspxcms 9.5.0 发布,Java CMS
  5. 你对云存储的安全性了解多少?
  6. Mac OSX上折腾JDK
  7. Oracle回收站使用全攻略
  8. mysql gitd 数据结构同步失败_mysql 5.7 gtid主从同步错误修复
  9. armbian n1 桌面_Armbian5.89桌面版安装OpenMediaVault教程
  10. 为什么JDK6中的substring()方法会导致内存泄露?