首页 > 学院 > 开发设计 > 正文

java设计模式之适配器模式

2019-11-14 09:28:07
字体:
来源:转载
供稿:网友

适配器模式:将一个类的接口,转换成客户期望的另一个接口。适配器让原来接口不兼容的类可以合作无间。 适配器又包含两种,一种是对象适配器,另一种是类适配器。 两者的区别:对象适配器采用组合的方式实现,类适配器采用继承的方式实现。

类适配器类图: 这里写图片描述 适配器Adapter继承Adaptee并实现Target接口来实现。

对象适配器类图: 这里写图片描述 适配器Adapter实现Target接口,在request方法中调用Adaptee对象的具体实现。

下面结合充电器适配器的例子来说明。

类图: 这里写图片描述 这个例子是通过适配器来使用安卓充电器给苹果设备充电。chargeAdapter的实现方式不同决定了是类适配器还是对象适配器。

接口AndroidCharger代码实现:

public interface AndroidCharger { public void charge();}

AndroidCharge类代码实现:

public class AndroidCharge implements AndroidCharger{ @Override public void charge() { // TODO Auto-generated method stub System.out.PRintln("使用安卓充电器充电..."); }}

接口AppleCharger代码实现:

public interface AppleCharger { public void charge();}

AppleCharge类代码实现:

public class AppleCharge implements AppleCharger{ @Override public void charge() { // TODO Auto-generated method stub System.out.println("使用苹果充电器充电..."); }}

对象适配器ChargeAdapter代码实现:

public class ChargeAdapter implements AppleCharger{ AndroidCharger androidCharger; public ChargeAdapter(AndroidCharger androidCharger){ this.androidCharger = androidCharger; } @Override public void charge() { // TODO Auto-generated method stub androidCharger.charge(); }}

类适配器ChargeAdapter2代码实现:

public class ChargeAdapter2 extends AndroidCharge implements AppleCharger{}

Client类代码实现:

public static void main(String[] args){ AppleCharger appleCharger = new AppleCharge(); appleCharger.charge(); //使用对象适配器模式 AndroidCharger androidCharger = new AndroidCharge(); ChargeAdapter adapter = new ChargeAdapter(androidCharger); adapter.charge(); //使用类适配器模式 ChargeAdapter2 adapter2 = new ChargeAdapter2(); adapter2.charge(); }}

运行结果:

使用苹果充电器充电...使用安卓充电器充电...使用安卓充电器充电...
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表