/** * 适配器模式(Adapter):将一个类的接口转换成客户但愿的另外一个接口,adapter模式 * 使得本来因为接口不兼容,而不能一块儿工做的那些类能够一块儿工做.对修改关闭,对拓展开放. * 不兼容的话 就加一个转接头. */ public class SixNine { /** * 能够看到work(powerB); 是报错的, powerA和powerB是同等级的对象 * */ public static void main(String[] args) { /** * 能够看到 powerA和 powerB 是不能够一块儿工做的,可是 * 在适配器Adapter的 转换头的做用下能够都在work 下工做. */ PowerA powerA = new PowerAImpl(); work(powerA); PowerB powerB = new PowerBImpl(); Adapter bToAdapter = new Adapter(powerB); work(bToAdapter); } public static void work(PowerA a) { System.out.println("正在插入..."); a.insert(); System.out.println("插入结束..."); } } class Adapter implements PowerA{// 针对PowerA 的类型作一个接口. private PowerB powerB; // 为了使PowerB 适用于上述接口. public Adapter(){}; public Adapter(PowerB powerB) { this.powerB = powerB; } @Override public void insert() { powerB.connect(); } } interface PowerB{ public void connect(); } class PowerBImpl implements PowerB{ @Override public void connect() { System.out.println("电源B开始工做..."); } } interface PowerA { public void insert(); } class PowerAImpl implements PowerA{ @Override public void insert() { // TODO Auto-generated method stub System.out.println("电源A开始工做..."); } }