Java的适配器模式
所谓适配器模式,其实很简单,就是将一个类的接口转换成客户端所期待的另一个接口,使得原本不兼容的两个类可以一起工作。
假设我们有一个Type-c接口,但是要使用的接口确实usb的接口,这时候要怎么办呢?解决方法就是用一个适配器将Type-c类转换成usb类,这样我们就能使用这个Type-c接口了。
实现适配器模式有两种方法,分别是组合方式和继承方式。
1.组合方式
组合方式就是讲被适配的对象组合到适配器类中,在这里被适配对象就是就是Type-c接口。
2.继承方式
继承方式就是通过多重继承不兼容的接口以匹配目标接口。
实现代码如下:
Usb.java
package com.muggle.Ada; public class Usb {
public void useUsb() {
System.out.println("使用了usb接口");
}
} Typec.java
package com.muggle.Ada; public interface Tyepec {
public void useTypec() ;
} Adapter.java
package com.muggle.Ada;
//使用组合方式实现适配器模式
public class Adapter implements Tyepec {
private Usb plug; public Adapter(Usb plug) {
// TODO Auto-generated constructor stub
this.plug=plug;
} @Override
public void useTypec() {
// TODO Auto-generated method stub
plug.useUsb();
System.out.println("完成转化使用了Type-c接口"); } } newAdapter.java
package com.muggle.Ada; public class newAdapter extends Usb implements Tyepec {
//使用继承方式实现适配器模式
@Override
public void useTypec() {
// TODO Auto-generated method stub
this.useUsb();
System.out.println("完成转化使用了Type-c接口");
} } TestDrive.java
package com.muggle.Ada; public class TestDrive { public static void main(String[] args) {
Tyepec tyepec=new Adapter(new Usb());
tyepec.useTypec(); Tyepec newtypec=new newAdapter();
newtypec.useTypec();
} }
运行结果如下:
使用了usb接口
完成转化使用了Type-c接口
使用了usb接口
完成转化使用了Type-c接口
这样我们就使用了适配器模式的两种方法对usb类进行了转换。
Java的适配器模式的更多相关文章
- Java设计模式——适配器模式
JAVA 设计模式 适配器模式 用途 适配器模式 (Adapter) 将一个类的接口转换成客户希望的另外一个接口. Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作. 适配器 ...
- 【设计模式】Java设计模式 - 适配器模式
[设计模式]Java设计模式 - 适配器模式 不断学习才是王道 继续踏上学习之路,学之分享笔记 总有一天我也能像各位大佬一样 原创作品,更多关注我CSDN: 一个有梦有戏的人 准备将博客园.CSDN一 ...
- JAVA 设计模式 适配器模式
用途 适配器模式 (Adapter) 将一个类的接口转换成客户希望的另外一个接口. Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作. 适配器模式是一种结构型模式. 结构
- Java设计模式 - 适配器模式
概念: 将一个类的接口,转换成客户期望的另一个接口.适配器模式让原来接口不兼容的类可以在一起工作. 解决的问题: 提供类似于中间人的作用:把原本不兼容.不能一起工作的接口组合在一起,使得它们能够在一起 ...
- Java模式(适配器模式)【转载】
转载地址: http://blog.csdn.net/elegant_shadow/article/details/5006175 今天看了下Java中的适配器模式,以下就来小做下总结和谈谈感想,以便 ...
- Java模式(适配器模式)
今天看了下Java中的适配器模式,下面就来小做下总结和谈谈感想,以便日后使用. 首先,先来先讲讲适配器.适配就是由“源”到“目标”的适配,而其中链接两者的关系就是适配器.它负责把“源”过度到“目标”. ...
- 设计模式总结(Java)—— 适配器模式
适配器模式中引入了一个被称为适配器(Adapter)的包装类,而它所包装的对象称为适配者(Adaptee),即被适配的类.适配器的实现就是把客户类的请求转化为对适配者的相应接口的调用.也就是说:当客户 ...
- Java设计模式——适配器模式(Adapter)
目的:把源类型适配为目标类型,以适应客户端(Client)的需求:此处我们把目标接口的调用方视为客户端 使用场景:需要对类型进行由源类型到目标类型转换的场景中 前置条件:已有客户端 //Client ...
- java设计模式——适配器模式 Java源代码
前言:适配器模式就是把一个类的接口变换成客户端所能接受的另一种接口,从而使两个接口不匹配而无法在一起工作的两个类能够在一起工作.通常被用在一个项目需要引用一些开源框架来一起工作时,这些框架的内部都有一 ...
随机推荐
- Linux下gcc编译控制动态库导出函数小结
根据说明文档“How To Write Shared Libraries"介绍, 有四种方法: 1. 在方法声明定义时,加修饰:__attribute__((visibility(" ...
- Android-Java-子类实例化过程(内存图)
案例一: package android.java.oop15; // 描述Person对象 class Person { // 构造方法就算不写 默认有一个隐式的无参构造方法:public Pers ...
- ku8eye 安装概览
ku8eye web 开发环境 当前版本的 ku8eye web开发环境 以docker镜像方式提供,下载地址为: http://pan.baidu.com/s/1gdYk4CV 文件名说明: ku8 ...
- 递归打印目录层次(java版)
import java.io.File; public class Test { /** * * @param fileDir 根目录 * @param num 递归层次 */ private sta ...
- Linux下用ifconfig命令设置IP、掩码、网关
设置IP和掩码ifconfig eth0 192.168.1.240 netmask 255.255.255.0设置网关route add default gw 192.168.1.1 每日一言:靡不 ...
- Spring Boot自动配置原理、实战
Spring Boot自动配置原理 Spring Boot的自动配置注解是@EnableAutoConfiguration, 从上面的@Import的类可以找到下面自动加载自动配置的映射. org.s ...
- js中数字直接点方法会报错,如1.toString()
Number(11).toString() "11" var num = 111; undefined num.toString() "111" .toStri ...
- 【BJOI2019】排兵布阵 DP
题目大意:有$n$座城堡,$s$轮游戏. 对于第$x$轮,第i座城堡的士兵数量为$a[x][i]$. 如果你需要攻下第i座城堡,你在第i座城堡部署的士兵必须严格大于$2a[x][i]$,如果攻下了你会 ...
- ffmpeg 处理视频项目中用到的一些命令
多媒体视频处理工具FFmpeg有非常强大的功能包括视频采集功能.视频格式转换.视频抓图.给视频加水印等. 目前仅接触到了一些初级命令,今天进行了简单整理. 分辨率 //智能1:1缩放 -i : -vf ...
- odoo开发笔记 -- 翻译机制及导入.po文件
待补充 http://ju.outofmemory.cn/entry/181972