将一个类的接口转换成客户但愿的另一个接口。Adapter模式使得本来因为接口不兼容而不能一块儿工做的那些类能够一块儿工做。java
package com.amosli.dp.structural.adapter; public interface Target { public void request(); } package com.amosli.dp.structural.adapter; /** * 适配器 * * @author amosli * */ public class Adapter implements Target { private Adaptee adaptee = new Adaptee(); @Override public void request() { adaptee.specialRequest(); } } package com.amosli.dp.structural.adapter; public class Adaptee { public void specialRequest() { System.out.println("special..."); } } package com.amosli.dp.structural.adapter; /** * 客户端 * * @author amosli * */ public class Client { public static void main(String[] args) { Target adapter = new Adapter(); adapter.request(); } }
你想使用一个已经存在的适配器模式,而他的接口不符合你的需求。你想建立一个能够复用的类,该类能够与其余不相关的类或不可预见的类协同工做。你想使用一些已经存在的子类,可是不可能对每个都进行子类化已一匹配他们的接口,对象适配器能够适配他的父类接口。 适配器如同一个常见的变压器,也如同电脑的变压器和插线板之间的电源链接线,他们虽然都是3相的,可是电脑后面的插孔却不能直接插到插线板上。git
适配器模式通常用于对于已有的设计进行衔接,不要在系统设计之初就开始考虑使用适配器模式,尽可能使用其余模式代替!
github
本系列文章源码地址,https://github.com/amosli/dp 欢迎Fork & Star !!ide