1、适配器模式就是将一个类的接口变成客户端所期待的另一种接口,使客户端能够使用原来因为接口不匹配所导致不能用的接口。
好像变压器,像我们的手机电脑,不能直接使用220V的电压,那么通过变压器就能降低电压,使原 来不能使用的电压现在变得能够使用。这个变压器就是一个适配。
下图中,原本A和C是不能够在一起,通过B的适配,AC终成眷属了。。。。

2、下面看看适配器模式的代码:
需要适配的角色,就像上面图中的A。。
package com.wang.adapterPattern; /** * 适配器模式 </br> 目标角色 * * @author Eddy * */ public interface Target { /** * 目标角色自己的方法 */ public void request(); }
它的实现类
package com.wang.adapterPattern; /** * 目标角色实现类 * * @author Eddy * */ public class ConcreteTarget implements Target { @Override public void request() { System.out.println("ConcreteTarget"); } }
适配的原角色,就像上图中的C。。
package com.wang.adapterPattern; /** * 适配的源角色 * * @author Eddy * */ public class Adaptee { /** * 源角色的方法 */ public void doSomething() { System.out.println("Adaptee"); } }
适配器角色,也就是上图中的B了,这个类继承了不符合接口的这个类,可以使用这个类的所有方法,同时也现实了符合条件的接口。
package com.wang.adapterPattern; /** * 适配器角色 * * @author Eddy * */ public class Adapter extends Adaptee implements Target { @Override public void request() { super.doSomething(); } }
客户端使用情况:
package com.wang.adapterPattern; public class APP { public static void main(String[] args) { Target target = new ConcreteTarget(); target.request(); /** * 适配其他的角色 */ Target targetAdapter = new Adapter(); targetAdapter.request(); } }
总结:需要用一个类中的方法来做操作,但是这个类又不符合系统的接口。可以用继承是实现来调用。
浙公网安备 33010602011771号