博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式之适配器模式
阅读量:4097 次
发布时间:2019-05-25

本文共 1237 字,大约阅读时间需要 4 分钟。

适配器,我想大家都知道是什么玩意儿。

就好比笔记本电脑的电源适配器,本来墙上那个模块直接提供出来的电压直接接上的话,笔记本有点受不了,那么就需要有个转换的工具,这就是适配器。

再举个栗子,以前Nokia为王的手机时代,手机充电器与手机的接口那交个五花八门,于是市场上产生这么一种产品,一个插头,然后伸出N种接口,方便你为各种手机充电,这也是适配器。

这几年水果vs安卓,水果有自己专有的USB数据线,安卓呢也有自己统一的数据线,于是呢,嗯……我想大家都想到了,一头传统USB接口,另一头再分出来,适用与各种手机,这还是适配器。

说了这么多,其实不就是个转换器么,我觉得可以这么理解。好了,看代码更直接。

假设我们想打印ArrayList类型的数据,代码如下:

package com.structural.adapter;import java.util.ArrayList;public interface PrintableList {
void printList(ArrayList
list);}

下面这个是要打印String类型的数据,这个简单!

package com.structural.adapter;public class PrintString {    public void print(String name){        System.out.println(name);    }}

一个是打印ArrayList,一个是打印String,这就需要适配器在中间和把稀泥了……

package com.structural.adapter;import java.util.ArrayList;public class PrintableListAdapter implements PrintableList {
@Override public void printList(ArrayList
list) { // TODO Auto-generated method stub StringBuffer listString = new StringBuffer(); for(String name : list){ listString.append(name+"\t"); } PrintString printString = new PrintString(); printString.print(listString.toString()); }}

代码很简单,说到底就是一个中间转换,让用户方便使用你这个PrintString。

最后呢放一张适配器模式的UML图

这里写图片描述

说实话,反正我是看得费劲,等哪天心情好了再研究吧

参考文献:

你可能感兴趣的文章
为什么培训班的码农总遭人嫌弃?
查看>>
眼看拿到50万年薪,没想到死在了redis多线程问题上
查看>>
程序员怎么尽快学会某项技术,达到应付面试水平?
查看>>
表弟面试阿里又挂了,我强烈推荐程序员必备阿里面试的300+面试题(含答案解析)给他后,苦肝两月,成功上岸蚂蚁金服
查看>>
怎么评价程序员35岁了还在撸代码?
查看>>
知乎:怎么评价程序员35岁了还在撸代码?
查看>>
到了2020年,年薪50W的阿里P7高级架构师需要掌握哪些技术栈
查看>>
疫情过后,35岁老程序员年后第一天上班被公司劝退,该何去何从?
查看>>
年薪200W阿里程序员征婚被群嘲:知道什么是门当户对吗?
查看>>
北上广深,2020,多少K的Java程序员应该懂高并发多线程和JVM优化
查看>>
阿里Redis面试全攻略,读完这个就可以和面试官大战几个回合了
查看>>
阿里Redis最全面试全攻略,读完这个就可以和阿里面试官好好聊聊
查看>>
Redis缓存穿透、缓存雪崩、Redis并发问题分析
查看>>
到了2020年,年薪80w的阿里P7专家,顶尖的技术人才只因做到了这几点
查看>>
华为初面+综合面试(Java技术面)附上面试题
查看>>
每天花四小时看马士兵Java、坦克大战、Spring、Redis、Jvm、分布式、高并发、Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx
查看>>
这可能是把 ZooKeeper 概念讲的最清楚的一篇文章
查看>>
整理出史上最全最好用的Java开源项目
查看>>
这可能是把Docker的概念讲的最清楚的一篇文章
查看>>
写出我的第一个框架:迷你版Spring MVC
查看>>