
Java 设计模式之--------适配器模式
发布日期:2021-05-06 19:33:32
浏览次数:21
分类:精选文章
本文共 1476 字,大约阅读时间需要 4 分钟。
适配器是一种在不匹配的系统之间起中介作用的工具,它通过桥接不同的接口或类,使原本无法协同工作的系统能够实现完美集成。就像我们常见的手机耳机接口(3.5mm孔),适配器可以帮助兼容不同品牌和规格的耳机。
适配器主要有三种类型,分别适用于不同的适配场景:
1. 类适配器
类适配器通过继承目标类的实现类来实现方法调用的桥接。例如,假设我们有接口A和接口B,目标是实现A接口的方法,同时调用B接口的实现类。类适配器可以通过继承B接口的实现类(如BImpl),并实现A接口的方法,从而在A接口中调用B接口的方法。
public interface A { void Arun();}public interface B { void Brun();}public class BImpl implements B { @Override public void Brun() { System.out.println("B is run"); }}public class AAdapter extends BImpl implements A { @Override public void Arun() { this.Brun(); }}
2. 对象适配
对象适配与类适配在实现方式上有所不同。适配器仍然实现目标接口A,但不通过继承,而是通过持有目标对象(如B对象)并调用其方法。这种方式更灵活,适用于目标对象难以继承或无法继承的情况。
public interface A { void Arun();}public interface B { void Brun();}public class BImpl implements B { @Override public void Brun() { System.out.println("B is run"); }}public class AAdapter implements A { private B b; public AAdapter(B b) { this.b = b; } @Override public void Arun() { b.Brun(); }}
3. 接口适配
接口适配的核心在于实现部分接口方法,而不是全部。通过创建抽象类(Adapter),我们可以选择性地实现所需的方法。这种方式特别适用于不需要全部方法支持或不希望暴露完整接口的情况。
public interface A { void a(); void b(); void c();}public abstract class Adapter implements A { @Override public void a() {} @Override public void b() {} @Override public void c() {}}public class BAdapter extends Adapter { @Override public void a() { System.out.println("我只需要a"); }}
通过以上方法,适配器能够在不同的场景下实现接口或类的适配,从而在不匹配的系统之间架起桥梁。
发表评论
最新留言
很好
[***.229.124.182]2025年05月10日 00时16分10秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Linux 的 cat 命令居然有那么多门道,涨知识了!
2023-02-01
Linux 的NFS服务的配置
2023-02-01
linux 的vi vim 的常用的基本命令
2023-02-01
Linux 的性能调优的思路
2023-02-01
Linux 的文本搜索命令 grep
2023-02-01
Linux 的账号与群组管理
2023-02-01
linux 目录&基础命令
2023-02-01
Linux 目录结构
2023-02-01
Linux 硬链接和软链接到底是什么?怎么理解?
2023-02-01
Linux 磁盘分区详解
2023-02-01
Linux 磁盘划分(3分钟看懂)
2023-02-01
Linux 磁盘和文件系统管理1
2023-02-01
Linux 磁盘和文件系统管理2
2023-02-01
Linux 磁盘满了不用慌,这几个命令在手不断梭哈就好
2023-02-01
Linux 磁盘爆满【解决办法】
2023-02-01
Linux 磁盘管理
2023-02-01
Linux 磁盘管理及监控与性能评估
2023-02-01
Linux 示例中的 apt 命令大全
2023-02-01
linux 禁用磁盘密码,linux 磁盘加密保护
2023-02-01