标签:目标 src 场景 使用 继承 header 内存 支持 请求
适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。
例如: InputStreamReader(InputStream);
可以将字节流转为字符流, 这里就用到了适配器模式
这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。
如果我们有一台老电脑, 没有网线插槽, 只有USB的插槽, 这时候我们就需要使用一个网线适配器来让电脑可以使用网线上网
现在我们就用代码来模拟一下这个适配器
Adaptee
类: 要被适配的类->网线
public class Adaptee {
// 上网
public void request() {
System.out.println("连接网线上网");
}
}
NetToUsb
类: 接口转换器的抽象实现
public interface NetToUsb {
// 作用: 处理请求, 网线=>USB
public void handleRquest();
}
Adapter
类: 真正的适配器, 需要连接USB, 连接网线
public class Adapter implements NetToUsb {
// 组合网线
private Adaptee adaptee;
// 构造器
public Adapter(Adaptee adaptee) {
this.adaptee = adaptee;
}
// 使用适配器连接网络
@Override
public void handleRquest( ) {
adaptee.request(); // 可以上网了
}
}
Computer
类: 电脑类->想上网, 插不上网线
public class Computer {
// 我们的电脑需要连接上转接器才可以上网
public void net(NetToUsb adapter) {
// 上网的具体实现, 找一个转接头
adapter.handleRquest();;
}
}
main
方法实现
public static void main(String[] args) {
Computer computer = new Computer(); // 电脑
Adaptee adaptee = new Adaptee(); // 网线
Adapter2 adapter = new Adapter2(adaptee); // 转接器
computer.net(adapter);
}
输出结果:
连接网线上网
代码结构图:
标签:目标 src 场景 使用 继承 header 内存 支持 请求
原文地址:https://www.cnblogs.com/zpKang/p/13124272.html