1.适配器模式概念
用于将一个类的接口转换成客户希望的另一个接口。适配器模式让原本由于接口不兼容而不能一起工作的那些类可以一起工作
2.适配器组成部分
1)目标接口 (Target): 客户端期望使用的接口。
2)适配者类 (Adaptee): 需要适配的已有类,其接口不符合目标接口的要求。
3)适配器类 (Adapter): 将适配者接口转换为目标接口,充当适配者和目标之间的桥梁。
3.举个栗子:
平常我们使用的用电器时,会遇到插头和插板孔不对的情况,我可以选择买一个接头转换器,然后就能正常使用了
如下图:
4.代码实现
1)ThreePort实现类
package org.xiji.adapter;/*** 接口*/
public interface ThreePort {//输入电源String inputPower();}
2)TwoPort实现类
package org.xiji.adapter;/*** 两孔插头*/
public class TwoPort {//接通电源public void connectPower(String power) {System.out.println(power+" 两孔插头接通电源正常工作 ");}
}
3)ThreeAdapteTwo实现类
package org.xiji.adapter;/*** 适配器*/
public class ThreeAdapterTwo implements ThreePort{private TwoPort twoPort;@Overridepublic String inputPower() {return "输出电源";}/**** 接通电源*/public void connectPower(){this.twoPort.connectPower(this.inputPower());}public ThreeAdapterTwo() {}public TwoPort getTwoPort() {return this.twoPort;}public void setTwoPort(TwoPort twoPort) {this.twoPort = twoPort;}public ThreeAdapterTwo(TwoPort twoPort) {this.twoPort = twoPort;}
}
4)测试类
package org.xiji.adapter;/*** 适配器测试类*/
public class AdapterMain {public static void main(String[] args) {//创建插头System.out.println("创建插头");TwoPort twoPort = new TwoPort();//创建多孔适配器System.out.println("创建多孔适配器");ThreeAdapterTwo threeAdapterTwo = new ThreeAdapterTwo();//两孔插头插入多孔连接器System.out.println("两孔插头插入多孔连接器");threeAdapterTwo.setTwoPort(twoPort);//连接三孔插头电源System.out.println("连接三孔插头电源");threeAdapterTwo.connectPower();}
}