我学会了,适配器模式

简介: 适配器模式属于结构型模式,这个类型的设计模式总结出了 类、对象组合后的经典结构,将类、对象的结构和使用解耦了,花式的去借用对象。

前言

适配器模式属于结构型模式,这个类型的设计模式总结出了 类、对象组合后的经典结构,将类、对象的结构和使用解耦了,花式的去借用对象。

适配器模式

使用场景:适配已有的功能,处理不兼容的功能,将不适合的功能再进行一层封装,将不适配的数据做完美转换。

理解:类、对象的结构和使用解耦,适配器模式和代理模式一样都支持继承、组合的方式。当目标的功能很少时,继承和组合的方式都行。当目标的功能非常多,只需要转换一小部分功能,同时要求保留目标原有大部分的功能,最好使用继承的方式。当目标的功能非常多,只需要转换一小部分功能,并不要求保留目标原有大部分功能,最好使用组合的方式。适配器模式常用于将不好用的功能或数据转换成合适易用的功能或数据。

namespace struct_mode_04 {

    // 接口
    interface IAlternator {
        sendElectricity(): void
    }

    class FiveThousandVTower {

        sendElectricity() {
            console.log('放电:放射~~~~5000V')
        }
    }

    class TowerAdapter implements IAlternator {

        private fiveThousandVTower = new FiveThousandVTower()

        sendElectricity(): void {
            this.fiveThousandVTower.sendElectricity()

            console.log('将5000v电转换。。。')

            console.log('转换成为了 220V 的家用电')
        }

    }

    class TowerAdapter2 extends FiveThousandVTower {

        sendElectricity() {
            super.sendElectricity()

            console.log('将5000v电转换。。。')

            console.log('转换成为了 36V 的小功率电')
        }
    }

    // 使用一:对象适配器
    const towerAdapter = new TowerAdapter()
    towerAdapter.sendElectricity()

    // 使用二:类适配器
    const towerAdapter2 = new TowerAdapter2()
    towerAdapter2.sendElectricity()

}
目录
相关文章
|
存储 Java 芯片
探索计算机的I/O控制方式:了解DMA控制器的作用与优势
对于有科班背景的读者,可以跳过本系列文章。这些文章的主要目的是通过简单易懂的汇总,帮助非科班出身的读者理解底层知识,进一步了解为什么在面试中会涉及这些底层问题。否则,某些概念将始终无法理解。这些计算机基础文章将为你打通知识的任督二脉,祝你在编程领域中取得成功!
387 1
探索计算机的I/O控制方式:了解DMA控制器的作用与优势
|
10月前
|
机器学习/深度学习 人工智能 自然语言处理
人工智能的边界拓展:从理论到实践的飞跃####
本文探讨了人工智能(AI)技术的最新进展,特别是深度学习领域的创新如何推动AI从理论研究走向广泛应用。通过分析几个关键领域的实际应用案例,如医疗健康、自动驾驶和自然语言处理,本文揭示了AI技术的潜力及其对社会和经济的深远影响。文章还讨论了当前面临的挑战,包括伦理问题和技术瓶颈,并展望了未来的发展趋势。 ####
|
11月前
|
存储 缓存 监控
哪些场景适合使用 Navigator.sendBeacon?
【10月更文挑战第6天】
186 2
|
11月前
|
负载均衡 算法 网络虚拟化
生成树原理详解
生成树原理详解
232 0
|
存储 人工智能 数据处理
面向AI场景的数据处理和数据检索
本文分享了AI场景下面临的数据处理与检索挑战及解决方案。AI内容生产涉及数据准备、模型训练、推理及应用四大环节,其中数据准备环节面临数据来源复杂、格式多样及数据量激增的挑战,模型训练环节需解决推理准确性问题,AI应用环节则需克服接口兼容性难题。 为应对这些挑战,阿里云存储OSS与智能媒体管理IMM提供百余种数据处理能力,并升级数据索引功能支持向量检索,助力构建多模态检索应用。此外,还介绍了Serverless数据处理方案,可日均处理百亿级别文件,通过OSS数据索引能力,客户能快速构建RAG检索增强,同时实现多模态检索的搭建,显著提升AI应用的效能和用户体验。
1157 19
|
移动开发 JavaScript 前端开发
分享21个JS抽奖转盘特效,36个JS表单验证,31个JS进度条,总有一款适合您
分享21个JS抽奖转盘特效,36个JS表单验证,31个JS进度条,总有一款适合您
217 0
|
JavaScript 前端开发 程序员
vue-element-admin 运行并且打包部署
vue-element-admin 运行并且打包部署
447 0
|
Java 编译器 API
JVM系列之:关于方法句柄的那些事
JVM系列之:关于方法句柄的那些事
341 1
JVM系列之:关于方法句柄的那些事
|
存储 弹性计算 运维
NebulaGraph在计算巢上的部署与实践
——乔雷NebulaGraph云原生研发工程师
NebulaGraph在计算巢上的部署与实践