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源代码
前言:适配器模式就是把一个类的接口变换成客户端所能接受的另一种接口,从而使两个接口不匹配而无法在一起工作的两个类能够在一起工作.通常被用在一个项目需要引用一些开源框架来一起工作时,这些框架的内部都有一 ...
随机推荐
- 可遇不可求的Question之flash的socket连接安全策略文件篇
flash的socket连接安全策略文件 最近公司做压力测试的时候,发现了一个问题.flash的socket客户端向服务端请求安全策略文件的时候,服务端负责回发策略文件的端口能连接上,但是没有响应 ...
- 带权单源最短路发[稠密图](Dijkstra)
对于稠密图,采用邻接矩阵较为合适 所以我们先构建一个邻接矩阵 typedef int Vertex; typedef int WeightType; //图 typedef struct MyGrap ...
- RxSwift学习笔记10:startWith/merge/zip/combineLatest/withLatestFrom/switchLatest
//startWith //该方法会在 Observable 序列开始之前插入一些事件元素.即发出事件消息之前,会先发出这些预先插入的事件消息 Observable.of(1,2,3) .startW ...
- IPC_管道
1.管道特点: 1)单向数据通信 2)匿名管道-常用于(父子进程/有血缘关系的进程之间) 3)命名管道-常用于(无血缘关系进程之间通信) 4)提供一种流式服务(发送和接受不接受字节数的大小,可取任意大 ...
- commons-text 生成指定长度的随机字符串
package com.skylink.junge.demo; import java.util.HashSet; import java.util.Set; import org.apache.co ...
- [转] 语音识别基本原理介绍----gmm-hmm中的embedded training (嵌入式训练)
转自:http://blog.csdn.net/wbgxx333/article/details/38986507 本文是翻译Speech and Language Processing: An in ...
- 用Python进行有进度条的π计算
1.tqdm是一个强大的终端进度条工具,我利用pip获取tqdm函数库. 2编写代码 2.1进行π的计算 from random import random from math import sqrt ...
- HTML+CSS实现页面豆腐块布局和图片居中
<!DOCTYPE html> <html> <head lang="en"> <meta http-equiv="Conten ...
- IDEA搭建SSM实现登录、注册,数据增删改查功能
本博文的源代码:百度云盘/java/java实例/SSM实例/SSM实现登录注册,增删改查/IDEA搭建SSM实现登录,注册,增删改查功能.zip 搭建空的Maven项目 使用Intellij id ...
- GMM基础
一.单成分单变量高斯模型 二.单成分多变量高斯模型 若协方差矩阵为对角矩阵且对角线上值相等,两变量高斯分布的等值线为圆形. 若协方差矩阵为对角矩阵且对角线上值不等,两变量高斯分布的等值线为椭圆形, 长 ...