JAVA 设计模式 适配器模式

简介: 用途 适配器模式 (Adapter) 将一个类的接口转换成客户希望的另外一个接口。 Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 适配器模式是一种结构型模式。

用途


适配器模式 (Adapter)
将一个类的接口 转换成客户希望的另外一个接口。
Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
适配器模式是一种 结构型模式



结构


图-适配器模式结构图

Target : 定义用户实际需要的接口

abstract  class Target {
     public  abstract  void Request();
}

Adaptee : 定义一个需要适配的接口

class Adaptee {
     public  void SpecificRequest() {
        System.out.println("特殊请求");
    }
}

Adapter : 通过在内部包装一个 Adaptee 对象,把源接口转换成目标接口。

class Adapter  extends Target {
     private Adaptee adaptee =  new Adaptee();

    @Override
     public  void Request() {
        adaptee.SpecificRequest();
    }
}

测试代码

public  class AdapterPattern {
     public  static  void main(String[] args) {
        Target target =  new Adapter();
        target.Request();
    }
}

运行结果

特殊请求


 

应用场景


想要使用一个已经存在的类,但如果它的方法不满足需求时;

两个类的职责相同或相似,但是具有不同的接口时要使用它;

应该在双方都不太容易修改的时候再使用适配器模式适配,而不是一有不同时就使用它。



 

推荐

本文属于 JAVA设计模式系列



参考资料

《大话设计模式》

《HeadFirst设计模式》 

 

目录
相关文章
|
机器学习/深度学习 自然语言处理 算法
大数据与机器学习
大数据与机器学习紧密相关,前者指代海量、多样化且增长迅速的数据集,后者则是使计算机通过数据自动学习并优化的技术。大数据涵盖结构化、半结构化及非结构化的信息,其应用广泛,包括商业智能、金融和医疗保健等领域;而机器学习分为监督学习、无监督学习及强化学习,被应用于图像识别、自然语言处理和推荐系统等方面。二者相结合,能有效提升数据分析的准确性和效率,在智能交通、医疗及金融科技等多个领域创造巨大价值。
566 2
|
Web App开发 Android开发
利用firefox调试安卓手机端web
该教程详细介绍如何通过Firefox浏览器实现手机与电脑的远程调试。手机端需安装最新版Firefox,并按指定步骤设置完成;电脑端则需安装15版及以上Firefox。设置完成后,通过工具栏中的“远程调试”选项,输入手机IP地址即可连接。连接确认后,即可使用电脑端Firefox调试器调试手机上的Web信息。注意,调试前手机需提前打开目标网页。
815 2
|
网络协议 网络安全 数据安全/隐私保护
IPv4和IPv6有什么区别
IPv4和IPv6有什么区别
|
SQL 数据库
IntelliJ IDEA 查看数据库插件(很强大的一个插件)
IntelliJ IDEA 查看数据库插件(很强大的一个插件)
870 0
|
C语言 C++ iOS开发
mac下vscode调试c的环境配置
mac下vscode调试c的环境配置
|
JavaScript
JS 获取 URL 参数
JS 获取 URL 参数
209 0
SQL除了like模糊查询,还有REGEXP
SQL除了like模糊查询,还有REGEXP
|
Java Linux
LINUX如何获取jre路径,及程序代码如何读取
LINUX如何获取jre路径,及程序代码如何读取
165 0
|
安全 开发者
最酷的黑客马拉松地点?30000英尺的高空
说到黑客马拉松,你很容易想起这些:拿着不放的手机,随处开着放在桌上的笔记本,当然还有互联网连接。但是英国航空公司”不接地创新实验室“中的开发者可没有这些东西,他们在空中进行了11个小时的黑客马拉松。
288 0
最酷的黑客马拉松地点?30000英尺的高空