轻松掌握Java适配器模式

 更新时间:2016年09月29日 17:22:04   作者:断了联系  
这篇文章主要帮助大家轻松掌握Java适配器模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

在计算机编程中,适配器模式(有时候也称包装样式或者包装)将一个类的接口适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。

特点:将两个不兼容的类通过接口实现在一起工作

企业级开发和常用框架中的应用:流接口,例如将字符流转换为字节流输出是用的outputstreamreader

适配器模式分为类适配器和对象适配器:

举例:电脑只有USB接口,但是键盘只有圆口,这时就需要一个适配器,让键盘能输入数据到电脑

类适配器:

package com.test.adapter;

public class Computer {

 public void show(USB usb){
 usb.recive();
 System.out.println("电脑显示输入的数据");
 }
 
 public static void main(String[] args) {
 Computer c = new Computer();
 USB u = new USBAdapter();
 c.show(u);
 }
}

class KeyBoard{
 public void input(){
 System.out.println("键盘输入数据");
 }

}

/**
 * 适配器接口 
 */
interface USB{
 public void recive();
}

/**
 * 具体的适配器
 */
class USBAdapter extends KeyBoard implements USB{

 public void recive() {
 System.out.println("我是USB适配器,我使圆口的键盘能和USB接口电脑连接");
 super.input();
 }
 
}

对象适配器:

package com.test.adapter;

public class Computer {

 public void show(USB usb){
 usb.recive();
 System.out.println("电脑显示输入的数据");
 }
 
 public static void main(String[] args) {
 Computer c = new Computer();
 KeyBoard k = new KeyBoard();
 USB u = new USBAdapter(k);
 c.show(u);
 }
}

class KeyBoard{
 public void input(){
 System.out.println("键盘输入数据");
 }

}

/**
 * 适配器接口 
 */
interface USB{
 public void recive();
}

/**
 * 具体的适配器
 */
class USBAdapter implements USB{

 private KeyBoard k;
 
 public USBAdapter(KeyBoard k) {
 this.k = k;
 }
 
 public void recive() {
 System.out.println("我是USB适配器,我使圆口的键盘能和USB接口电脑连接");
 k.input();
 }
 
}

相对而言,对象适配器通过组合的方式比类适配器通过集成的方式要更灵活,推荐平时使用对象适配器。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Java实现的迷宫游戏

    Java实现的迷宫游戏

    这篇文章主要介绍了如何用Java实现一个迷宫游戏,本仓库代码是经过eclipse编译运行过的,一般情况下将本仓库代码下载下来之后,使用eclipse编译直接可以运行。
    2021-04-04
  • 浅谈Spring Session工作原理

    浅谈Spring Session工作原理

    Spring Session是为了解决多进程session共享的问题,本文将介绍怎么使用Spring Session,以及Spring Session工作原理
    2021-06-06
  • JavaWeb案例讲解Servlet常用对象

    JavaWeb案例讲解Servlet常用对象

    Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层
    2021-10-10
  • JAVAEE中用Session简单实现购物车功能示例代码

    JAVAEE中用Session简单实现购物车功能示例代码

    本篇文章主要介绍了JAVAEE中用Session简单实现购物车功能示例代码,非常具有实用价值,需要的朋友可以参考下。
    2017-03-03
  • Java中使用byte[]获取16位字符串的技巧分享

    Java中使用byte[]获取16位字符串的技巧分享

    在Java编程中,处理字符编码和字节数组时,尤其是从​​byte[]​​​数组中获取字符串,可能会遇到字符集的复杂性问题,本文将介绍如何从一个​​byte[]​​数组中正确获取16位字符串,需要的朋友可以参考下
    2024-08-08
  • Java 在Excel中添加分离型饼图、环形图的方法

    Java 在Excel中添加分离型饼图、环形图的方法

    这篇文章主要介绍了Java 在Excel中添加分离型饼图、环形图的方法,帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下
    2020-12-12
  • Java语言的Comparable和Comparator区别

    Java语言的Comparable和Comparator区别

    这篇文章主要介绍了Java语言的Comparable和Comparator区别,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06
  • Java使用Queryable-pageable实现分页效果

    Java使用Queryable-pageable实现分页效果

    这篇文章主要为大家介绍了Java如何使用Queryable-pageable从而实现分页效果,文中的示例代码简洁易懂,感兴趣的小伙伴可以动手尝试一下
    2022-06-06
  • 关于Springboot中JSCH的使用及说明

    关于Springboot中JSCH的使用及说明

    这篇文章主要介绍了关于Springboot中JSCH的使用及说明,具有很好的参考价值,希望对大家有所帮助。
    2022-09-09
  • Spring Boot设置支持跨域请求过程详解

    Spring Boot设置支持跨域请求过程详解

    这篇文章主要介绍了Spring Boot设置支持跨域请求过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08

最新评论