【软考】设计模式之适配器模式

这篇具有很好参考价值的文章主要介绍了【软考】设计模式之适配器模式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 说明
  • 1.Adapter(适配器)。
  • 2.将一个类的接口转换成客户希望的另外一个接口。
  • 3.Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
  • 4.类适配器使用多重继承对一个接口与另一个接口进行匹配。
  • 5.对象适配器依赖于对象组合。
  • 6.适配器模式是一种非常实用的设计模式,它能够帮助我们解决接口不兼容的问题,提高系统的灵活性和可扩展性。
2. 应用场景
  • 1.旧接口适配新接口:当系统中的一个类需要使用另一个类的接口,但这两个类的接口不兼容时,可以使用适配器模式。
  • 2.多个类的接口统一:当系统中的多个类的接口不统一时,可以使用适配器模式将它们的接口统一成一个接口,从而提高系统的灵活性和可扩展性。
  • 3.封装有缺陷的接口设计:如果某个类的接口设计存在缺陷或不符合标准规范,可以使用适配器模式进行封装,使其更符合客户端的使用习惯或需求。
3. 结构图
  • 1.类适配器结构图
    【软考】设计模式之适配器模式,软考,设计模式,设计模式,java
  • 2.对象适配器结构图
    【软考】设计模式之适配器模式,软考,设计模式,设计模式,java
4. 构成
  • 1.目标接口(Target Interface):定义客户端所期望使用的与特定领域相关的接口方法。
  • 2.适配器(Adapter):适配器类实现目标接口,并持有一个适配者对象。适配器通过调用适配者对象的方法,将其转换为目标接口方法。适配器可以是类适配器(通过继承实现)或对象适配器(通过组合实现)。
  • 3.适配者(Adaptee):已经存在的类或接口,提供了特定的功能,但与目标接口不兼容,这个接口需要适配。
  • 4.客户端(Client):使用目标接口进行操作的类或对象。
5. 优缺点
5.1 优点
  • 1.提高兼容性:能够解决接口不兼容的问题,使得原本不兼容的类能够协同工作。
  • 2.灵活性:通过使用适配器,客户端代码可以独立于不兼容的接口进行编写,从而提高了系统的灵活性。当需要更换或修改被适配的类时,只需要修改适配器即可,而不需要修改客户端代码。
  • 3.扩展性:适配器模式可以轻松地添加新的适配器来支持新的接口,这使得系统更易于扩展。
  • 4.复用性:适配器可以复用现有的功能,通过转换接口来适应新的环境或需求,提高了代码的复用性。
5.2 缺点
  • 1.增加复杂性:引入适配器模式可能会增加系统的复杂性,因为需要编写额外的适配器代码。这可能会使得系统的理解和维护变得更加困难。
  • 2.性能损耗:适配器模式在转换接口的过程中可能会引入一些性能损耗,尤其是在处理大量数据时。这是因为适配器需要在客户端和被适配类之间进行额外的转换操作。
  • 3.可能产生过多的适配器:如果系统中存在大量的不兼容接口,那么可能需要编写大量的适配器来解决这些问题。这可能会导致系统中存在过多的适配器类,使得系统结构变得复杂。
6. 适用性
  • 1.想使用一个已经存在的类,而它的接口不符合要求。
  • 2.想创建一个可以服用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作。
  • 3.(仅适用于对象 Adapter)想使用一个已经存在的子类,但是不可能对每一个都进行子类化以匹配它们的接口。对象适配器可以适配它的父类接口。
7. java示例
7.1 类适配器模式
  • 1.老打印机类
package com.learning.adapter.class_adapter;

/**
 * 旧打印机类,有老旧的打印方法
 */
public class OldPrinter {
    public void printOld(String content){
        System.out.println("旧打印机打印内容:" + content);
    }
}

  • 2.打印接口
package com.learning.adapter.class_adapter;
/**
 * 打印接口
 */
public interface Printable {
    void print(String content);
}
  • 3.新系统
package com.learning.adapter.class_adapter;

/**
 * 新系统
 */
public class NewSystem {
    private Printable printer;

    public NewSystem(Printable printer){
        this.printer = printer;
    }
    public void printDocument(String content){
        printer.print(content);
    }
}
  • 4.旧打印机适配器类
package com.learning.adapter.class_adapter;

/**
 * 旧打印机适配器类
 */
public class OldPrinterAdapter extends OldPrinter implements Printable{
    @Override
    public void print(String content){
        // 调用旧打印机的打印方法
        printOld(content);
    }
}
  • 5.客户端类
package com.learning.adapter.class_adapter;

/**
 * 客户端类
 */
public class Client {
    public static void main(String[] args) {
        NewSystem newSystem = new NewSystem(new OldPrinterAdapter());
        newSystem.printDocument("Hello World!");
    }
}
  • 6.示例截图
    【软考】设计模式之适配器模式,软考,设计模式,设计模式,java
7.2 对象适配器模式
  • 1.旧打印机适配器类
package com.learning.adapter.object_adapter;

/**
 * 旧打印机适配器类
 */
public class OldPrinterAdapter implements Printable {

    private OldPrinter oldPrinter;

    public OldPrinterAdapter(OldPrinter oldPrinter){
        this.oldPrinter = oldPrinter;
    }
    @Override
    public void print(String content){
        // 调用旧打印机的打印方法
        oldPrinter.printOld(content);
    }
}
  • 2.客户端类
package com.learning.adapter.object_adapter;

/**
 * 客户端类
 */
public class Client {
    public static void main(String[] args) {
        NewSystem newSystem = new NewSystem(new OldPrinterAdapter(new OldPrinter()));
        newSystem.printDocument("Hello World!");
    }
}

文章来源地址https://www.toymoban.com/news/detail-855490.html

到了这里,关于【软考】设计模式之适配器模式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 重读Java设计模式: 适配器模式解析

    在软件开发中,经常会遇到不同接口之间的兼容性问题。当需要使用一个已有的类,但其接口与我们所需的不兼容时,我们可以通过适配器模式来解决这一问题。适配器模式是一种结构型设计模式,它允许接口不兼容的类之间进行合作。本文将深入探讨适配器模式的概念、应

    2024年04月09日
    浏览(77)
  • Java与设计模式(7):适配器模式

    适配器模式是一种结构型设计模式,它允许将一个类的接口转换为客户端所期望的另一个接口。适配器模式使得原本由于接口不兼容而无法一起工作的类能够协同工作。 适配器模式通过引入一个适配器类来解决接口不兼容的问题。适配器类实现了客户端所期望的目标接口,并

    2024年02月11日
    浏览(46)
  • Java设计模式之适配器模式详解

    大家好,我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!在今天的篇章中,我们将深入探讨Java设计模式的奇妙世界,而焦点就是适配器模式。这种模式就像是代码变换的艺术大师,让不同的接口和类在项目中和谐

    2024年01月19日
    浏览(48)
  • Java设计模式-结构型-适配器模式

    ​ 与电源适配器相似,在适配器模式中引入了一个被称为适配器(Adapter)的包装类,而它所包装的对象称为适配者(Adaptee),即被适配的类。适配器的实现就是把客户类的请求转化为对适配者的相应接口的调用。也就是说:当客户类调用适配器的方法时,在适配器类的内部将调用

    2024年02月20日
    浏览(55)
  • 【Java 设计模式】结构型之适配器模式

    适配器模式(Adapter Pattern)是一种结构型设计模式, 用于将一个类的接口转换成客户端期望的另一个接口 。这种模式使得原本由于接口不兼容而不能一起工作的类可以一起工作。在本文中,我们将介绍 Java 中适配器模式的定义、结构、使用场景以及如何在实际开发中应用。

    2024年01月19日
    浏览(45)
  • 【设计模式——学习笔记】23种设计模式——适配器模式Adapter(原理讲解+应用场景介绍+案例介绍+Java代码实现)

    不同国家的插座不同,出国旅游充电器不能直接使用,可以通过使用 多功能转换插头 来辅助使用 适配器模式将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper) 适配器模

    2024年02月16日
    浏览(53)
  • 设计模式-适配器模式

    在我们生活中,插座输出的电源都是220V的,而我们手机充电需要的电压基本都是5V的。我们不能直接用220V的电压来给手机充电,也不能说专门有线路来提供5V的电压。所以就有了充电器,充电器可以将220V的电压转为5V的电压,这样我们就方便太多了。 上面所说的充电器其实就

    2024年02月08日
    浏览(46)
  • 【设计模式】适配器模式

    适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。 这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。

    2024年02月12日
    浏览(60)
  • 设计模式——适配器模式

    说起适配器其实在我们的生活中是非常常见的,比如:学校的宿舍的电压都比较低,而有的学生想使用大功率电器,宿舍的就会跳闸,然而如果你使用一个适配器(变压器)就可以使用了(温馨提示宿舍使用大功率电器不太安全,容易引起火灾,希望大家谨慎使用)。 又比如

    2024年02月12日
    浏览(58)
  • 设计模式--适配器模式

    目录 基本介绍 工作原理 类适配模式 介绍 应用实例介绍 类适配器模式注意事项和细节 对象适配模式 介绍 对象适配器模式注意事项和细节 接口适配器模式 介绍 适配器模式的注意事项和细节  (1) 适配器模式(Adapter Pattern) 将某个类的接口转换成客户端期望的另一个接口表示

    2023年04月26日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包