适配器模式(Adapter Pattern):将一个类的接口转换成另一种接口,让原本接口不兼容的类可以兼容。
适配器模式包括目标、适配器、被适配者三个角色。
适配器模式在生活中也有很多体现,比如插头和插座间的转换器、内存卡的读卡器等就是典型的适配器模式,使用适配器模式的优势在于,从用户的角度是看不到被适配者的,目标和被适配者之间是解耦的。
下面通过一个简单的例子来演示适配器模式的原理:插头的例子
1、插座接口
public interface Socket { void display(); }
2、插座实现类,美式插座
public class USASocket implements Socket{ @Override public void display() { System.out.println("长方形底座,插孔较粗"); } }
3、插头接口
public interface Plug { void display(); }
4、插头实现类,中式插头
public class ChinaPlug implements Plug { @Override public void display() { System.out.println("三角形孔,孔较细"); } }
5、适配器(一个可插入中式插头的转换器)
public class SocketAdapter implements Socket{ private Plug plug; public SocketAdapter(Plug plug) { this.plug = plug; } @Override public void display() { plug.display(); } }
6、测试类
public class MainTest { public static void main(String[] args){ Plug chinaPlug = new ChinaPlug(); SocketAdapter adapter = new SocketAdapter(chinaPlug); adapter.display(); } }
输出结果:
三角形孔,孔较细
项目开发中,尽可能的通过合理设计去避免大量的使用适配器模式,避免增加维护的困难