适配器模式,即将某个类的接口转换成客户端期望的另一个接口的表示,主要目的是实现兼容性,让原本因为接口不匹配,没办法一起工作的两个类,可以协同工作。本文将通过示例详细介绍适配器模式,需要的可以参考一下
1.什么是适配器模式
将一个类的接口转换成为客户希望的另外一个类的接口。适配器(Adapter)模式是的原本由于接口不兼容而不能在一起工作的类,可以一起工作。
比如,小米充电器,可以给小米手机充电,目前,想让苹果充电器给小米手机充电。如何完成,这时候需要一个适配器,将小米充电器和苹果充电器连在一起。
2.如何实现
1)目标接口,该接口是客户想要使用的接口(苹果充电器)
2)被适配者,是一个已经存在的接口或抽象类。(小米充电器)
3)适配器,是一个类,该类实现了目标接口,并包含被适配者的引用。
适配器的职责是对被适配者接口(抽象类)与目标接口进行适配
3.代码实现
1)目标接口
/**
* 目标接口,苹果充电器
*/
public interface AppleCharger {
public void appleCharger();
}
2)被适配者
/**
*被适配者,小米充电器
*/
public interface MiCharger {
public void miCharger();
}
3)小米手机使用小米充电器进行充电
/**
*小米手机,实现小米充电器接口,可以充电
*/
public class MiPhone implements MiCharger {
@Override
public void miCharger() {
charging();
}
public void charging(){
System.out.println("MiPhone charging.....");
}
}
4)适配器。需要调用苹果充电器的方法给小米手机充电。
该类实现了目标接口(AppleChager),并包含被适配者引用(MiCharger)
/**
* 适配器,
* 该类实现目标接口AppleCharge,并包含被适配者(MiCharger)的引用
*/
public class AppleAdapter implements AppleCharger {
MiCharger charge;
public AppleAdapter(MiCharger b){
this.charge = b;
}
/**
* 调用苹果充电器的方法
*/
@Override
public void appleCharger() {
//给使用小米充电器的设备充电
charge.miCharger();
}
}
5)测试类
public class TestMain {
public static void main(String args []){
AppleAdapter adapter = new AppleAdapter(new MiPhone());
adapter.appleCharger();//调用苹果充电器,给小米手机充电
}
}
到此这篇关于Java设计模式之适配器模式的示例详解的文章就介绍到这了,更多相关Java适配器模式内容请搜索编程学习网以前的文章希望大家以后多多支持编程学习网!
本文标题为:Java设计模式之适配器模式的示例详解
基础教程推荐
- Java Keytool 导入证书后出错,"keytool error: java.io.FileNotFoundException &拒绝访问" 2022-01-01
- 降序排序:Java Map 2022-01-01
- 设置 bean 时出现 Nullpointerexception 2022-01-01
- 无法使用修饰符“public final"访问 java.util.Ha 2022-01-01
- Java:带有char数组的println给出乱码 2022-01-01
- FirebaseListAdapter 不推送聊天应用程序的单个项目 - Firebase-Ui 3.1 2022-01-01
- 减少 JVM 暂停时间 >1 秒使用 UseConcMarkSweepGC 2022-01-01
- “未找到匹配项"使用 matcher 的 group 方法时 2022-01-01
- 在 Libgdx 中处理屏幕的正确方法 2022-01-01
- 如何使用 Java 创建 X509 证书? 2022-01-01