Java常用设计模式--适配器模式(Adapter Pattern)
时间:2022-07-23
本文章向大家介绍Java常用设计模式--适配器模式(Adapter Pattern),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。
组成结构
- 客户 (Client):客户类。
- 目标接口(Target):客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口。
- 适配者(Adaptee):需要适配的类或适配者类。
- 适配器(Adapter):通过包装一个需要适配的对象,把原接口转换成目标接口。
举个例子:
电脑的电源是两孔的,现在墙上的插座是三孔,这时就需要一个三控插座转两孔插座的转接器
分析:
三孔插座是目标接口
二孔插座是适配者
三控转两孔转接器是适配器
上代码:
三控插座
package com.example.adapter;
/**
* 三控插座
*/
public class SocketThree {
public void insert(ThreeToTwoAdapter threeToTwoAdapter){
threeToTwoAdapter.handRquest();
}
}
二孔插座
package com.example.adapter;
/**
* 二孔插座想插入三控插座但是插入不了
*/
public class SocketTwo {
public void request(){
System.out.println("我是二孔插座,我已经通过适配器插入三控插座");
}
}
适配器接口
package com.example.adapter;
/**
* 接口三控转两孔转换器抽象
*/
public interface ThreeToTwoAdapter {
void handRquest();
}
适配器接口实现
package com.example.adapter;
/**
* 需要连接二孔插座和三孔插座的适配器
*/
public class ThreeToTwoAdapterImpl implements ThreeToTwoAdapter {
private SocketTwo socketTwo;
public ThreeToTwoAdapterImpl(SocketTwo socketTwo) {
this.socketTwo = socketTwo;
}
@Override
public void handRquest() {
socketTwo.request();
}
}
测试类
package com.example.adapter;
public class Test {
public static void main(String[] args) {
//两孔插座
SocketTwo socketTwo = new SocketTwo();
//三控插座
SocketThree socketThree = new SocketThree();
//两孔插座连接适配器
ThreeToTwoAdapterImpl threeToTwoAdapterImpl = new ThreeToTwoAdapterImpl(socketTwo);
//将配器插入三控插座
socketThree.insert(threeToTwoAdapterImpl);
}
}
测试结果:
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Array - 122. Best Time to Buy and Sell Stock II
- Array - 121. Best Time to Buy and Sell Stock
- Array - 220. Contains Duplicate III
- Array - 219. Contains Duplicate II
- Array - 217. Contains Duplicate
- Array - 299. Bulls and Cows
- Array - 189. Rotate Array
- Array - 277 Find the Celebrity
- Array - 80. Remove Duplicates from Sorted Array II
- Array - 508. Wiggle Sort
- Array - 376. Wiggle Subsequence
- Array - 283. Move Zeroes
- Array - 88. Merge Sorted Array
- Array - 228. Summary Ranges
- Array - 152. Maximum Product Subarray