本文共 1237 字,大约阅读时间需要 4 分钟。
适配器,我想大家都知道是什么玩意儿。
就好比笔记本电脑的电源适配器,本来墙上那个模块直接提供出来的电压直接接上的话,笔记本有点受不了,那么就需要有个转换的工具,这就是适配器。
再举个栗子,以前Nokia为王的手机时代,手机充电器与手机的接口那交个五花八门,于是市场上产生这么一种产品,一个插头,然后伸出N种接口,方便你为各种手机充电,这也是适配器。
这几年水果vs安卓,水果有自己专有的USB数据线,安卓呢也有自己统一的数据线,于是呢,嗯……我想大家都想到了,一头传统USB接口,另一头再分出来,适用与各种手机,这还是适配器。
说了这么多,其实不就是个转换器么,我觉得可以这么理解。好了,看代码更直接。
假设我们想打印ArrayList类型的数据,代码如下:
package com.structural.adapter;import java.util.ArrayList;public interface PrintableList { void printList(ArrayListlist);}
下面这个是要打印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(ArrayListlist) { // 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图
说实话,反正我是看得费劲,等哪天心情好了再研究吧
参考文献: