生活中的设计模式之适配器模式

Posted 寒冰护狐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了生活中的设计模式之适配器模式相关的知识,希望对你有一定的参考价值。

初步认识适配器模式

鲁迅先生曾经说过,程序源自生活,而又高于生活,世界创造了万物,我们创造了程序,在这之间一定存在某些相似点。所以我们可以通过观察现实世界,来设计我们的虚拟世界

一、什么是适配器模式

适配器模式是传说中的GOF提出的二十三种设计模式的一种,他的适用范围也比较广,经常用到VO向PO的转换,或者项目对接时数据传输的类型匹配转换等,今天我准备做一个小的demo,来初步认识一下这个适配器模式。

二、我们生活中的适配器

适配器在我们的生活中也算是到处可见了,比如我们笔记本用到的变压器,他就是一个将220V电压适配成我们笔记本电脑所需要的电压;比如我们的USB读卡器,大家应该都见过,普通的存储卡是没有办法直接与电脑连接的,这个时候我们可以适用USB读卡器,一端关联存储卡一边关联电脑。这样描述大家心里应该有一些感觉了,我们开始进入下一阶段。

三、我们代码中的适配器

既然实践是检验真理的唯一标准,那我们先来模拟一个场景吧
我有一张存储卡和一个笔记本电脑,现在想往我的存储卡上下载一首我最爱听的《少年》,但是我们现在没有办法直接下载,所以需要设计一个适配器,废话不多说直接开始吧!!!!!

首先我们需要有一张存储卡,他的功能就是接收下载的音乐
public class MemoryCard 
    // 首先我们需要有一张存储卡
    public MemoryCard() 
        System.out.println("我想下载音乐");
    

然后我们还需要一个有USB接口的电脑
public interface Computer 

    void musicDownLoad(String musicName);


最后我们需要一个USB读卡器也就是适配器,一边插入电脑的接口中,另一边插入存储卡
public class MyAdapter implements Computer // 将适配器插入电脑

    private MemoryCard memoryCard;
    // 将适配器插入电脑
    public MyAdapter(MemoryCard memoryCard) 
        this.memoryCard = memoryCard;
    

    @Override
    public void musicDownLoad(String musicName) 
        System.out.println("《" + musicName + "》已下载完成");
    


最后我们选择一台电脑,插上USB读卡器然后开始下载一首《少年》吧
public class Run 
    public static void main(String[] args) 
		// 将存储卡插入USB读卡器,然后通过电脑来下载音乐
        new MyAdapter(new MemoryCard()).musicDownLoad("少年");
    

运行结果:

好了,到现在为止一个简单的适配器模式就已经完成了,后续有时间我也会结合其他设计模式深入研究的,这是我的第一篇博客,大佬们轻点锤

以上是关于生活中的设计模式之适配器模式的主要内容,如果未能解决你的问题,请参考以下文章

设计模式---结构型模式之适配器模式(Adapter Pattern)

Java设计模式之四 ----- 适配器模式和桥接模式

Java进阶篇设计模式之四 -----适配器模式和桥接模式

java设计模式之适配器模式

设计模式与代码的结构特性

设计模式之二 适配模式