JAVA设计模式之:适配器模式

 适配器模式是把一个类的接口适配成用户所期待的,使得原本由于接口不兼容而不能一起工作的一些类可以在一起工作从而实现用户所期望的功能。
 适配器模式的优势:
  1. 通过适配器,客户端可以调用统一接口,操作简单直接,并且代码逻辑紧凑,使用起来方便。
  2. 代码复用,适配器模式就是解决因为环境要求不相同 的问题,通过适配实现代码复用。
  3. 将目标类和适配器类解耦,通过新建一个适配器类来重用现在的类,不用再去重复修改原有代码,实现开闭原则。
    共有两类适配器模式

1.对象适配器模式: 在这种适配器模式中,适配器容纳一个它包裹的类的实例。在这种情况下,适配器调用被包裹对象的物理实体。
2. 类适配器模式: 这种适配器模式下,适配器继承自已实现的类(一般多重继承)。
示例代码:
/**
* @description:
* 原有的接口功能,比如是给电动车充电功能
*/
public interface FirstBaseIf {
void charging();//充电

}

/**
* 要实现的操作功能
* @description:
*/
public class NewFunction {
public void powerWithTwo(){
System.out.println(“新功能:给电动汽车也可以充电啦”);
}

}

/**
*新建适配器类,来实现对原有接口FirstBaseIf的操作使用
* @description:
*/
public class FunctionAdapter implements FirstBaseIf {
private NewFunction plug;
public FunctionAdapter(NewFunction plug){
this.plug=plug;
}
@Override
public void charging() {//重写原有接口中的方法,从而实现接口转化
System.out.println(“通过适配器转化”);
plug.powerWithTwo();
}
}
——–测试代码——————-
public class Test {
private FirstBaseIf plug;

public Test(FirstBaseIf plug) {
    this.plug = plug;
}

public static void main(String[] args) {
    NewFunction two = new NewFunction();
    FirstBaseIf three = new FunctionAdapter(two);//这里就是通过适配器实现转换
    Test note = new Test(three);
    note.charge();
}

public void charge() {
    plug.charging();//使用原有接口中的功能
}

}
运行结果:
这里写图片描述
适用场景:
在java程序中,如果一个抽象类或者接口的话,就必须要重写所有的抽象方法。
那么,如果一个接口中定义的抽象方法过多,而子类中很多抽象方法又不需要用到,就应该设计一个适配器。通过Java语言进行的Android开发中,就经常会用到适配器模式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值