首页 > Java > java教程 > 正文

适配器模式

霞舞
发布: 2024-11-30 18:03:10
转载
406人浏览过

什么是适配器模式?

适配器模式是一种结构模式,它将一个类的接口转换为客户期望的另一个接口。适配器让类能够协同工作,否则由于接口不兼容而无法协同工作。

什么时候使用它?

  • 当您想要使用遗留代码或第三方库但其接口与应用程序的其他部分不兼容时,请使用适配器模式。

问题

我们一直在使用旧打印机,但现在发明了与新打印机集成的新免费软件。问题是我们买不起新打印机,但仍然想使用该软件。有没有办法使用新软件但使用与该软件不兼容的旧打印机?是的,这里适配器模式就派上用场了。

解决方案

适配器模式

  1. 新软件
    这是我们的客户。这只接受 modernprinter 接口。 newsoftware 认为它正在处理 modernprinter。

  2. 现代打印机
    为client提供兼容的接口。

  3. 打印机适配器
    从 modernprinter 接收方法调用 modernprint(),然后将其转换为

  4. 格式
  5. 旧打印机
    这就是我们想要使用的,但它的界面与我们的新软件不兼容。当 modernprinter 调用 modernprint() 时,oldprint() 被执行。

结构

适配器模式

记住适配器可以与适配器的任何子类一起使用。

java实现

public class oldprinter {

    public void oldprint(string document) {
        system.out.println(document + " by old printer");
    }
}
登录后复制
public interface modernprinter {

    void modernprint(string document);
}
登录后复制
public class printeradapter implements modernprinter {

    private oldprinter oldprinter;

    public printeradapter(oldprinter oldprinter) {
        this.oldprinter = oldprinter;
    }

    @override
    public void modernprint(string document) {
        oldprinter.oldprint(document);
    }
}
登录后复制
public class newsoftware {

    public static void main(string[] args) {
        oldprinter oldprinter = new oldprinter();
        // because printeradapter implements modernprinter, it can be seen
        // as a modernprinter which is integrated with newsoftware
        modernprinter adapter = new printeradapter(oldprinter);
        adapter.modernprint("hello world");
    }
}
登录后复制

在我们的假设中,您的 newsoftware 与 modernprinter 集成,因此像 oldprinter.oldprint("hello world"); 这样的代码没有意义。在 newsoftware 类中(即使编译时不会出现错误)。

输出:

Hello world by old printer
登录后复制

陷阱

  • 除了简单的接口转换之外,适配器还做了很多工作,会导致添加/更改适配器行为,这与适配器模式的意图相去甚远。

对象和类适配器

我们所看到的称为对象适配器,它使用组合来适应适配器。还有另一种类型的适配器称为类适配器,它使用继承来实现适配器模式的意图。

琅琅配音
琅琅配音

全能AI配音神器

琅琅配音 208
查看详情 琅琅配音

java不支持多重继承。所以我们不能在java中使用类适配器,但无论如何我们都会研究它,因为你可能会遇到其他语言中的类适配器。

适配器模式

因为对象适配器使用组合,适配器可以保存对一个或多个adaptee对象的引用。因此,对象适配器提供了更大的灵活性。而类适配器与一个且只有一个适配器紧密耦合,这导致灵活性较低。


您可以在这里查看所有设计模式的实现。
github 存储库

以上就是适配器模式的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:dev.to网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门推荐
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号