前面讲解完了设计模式中的创建性模式,本文开始讲解设计模式中的结构性模式之一:适配器模式。
A类想要使用B类中的某些方法,但是不能直接使用,需要一个中间类对B类进行处理后,A类才能使用,这个中间类就是适配器,这种模式就是适配器模式。示意图如下。
既A类和B类之间夹了一个适配器类,适配器将B类传入的数据src进行处理,然后输出为A类需要使用的dst传给A类。
按照适配器如何接收B类的方式,将适配器模式分为三种模式,如果适配器类通过继承B类获得B类行为,则称为类适配器模式;如果直接将B类对象聚合到适配器类中,称为对象适配器模式;如果以接口的形式给到适配器类,则称之为接口适配器。
二、适配器模式案例如我们有一个Voltage220v类只能输出220v的电压,但是现在我们要给手机充电,只能使用5V的电压,那么此时就需要一个适配器类VoltageAdapter首先将220v的电压转为5v,然后再给手机使用。三种适配器模式的实现如下:
1. 类适配器模式实现public class Voltage220v {public int output200v()
{return 220;
}
}
public interface IVoltage5v {public int output5v();
}
public class VoltageAdapter extends Voltage220v implements IVoltage5v{@Override
public int output5v() {int src = output200v();
int dis = src / 44;
return dis;
}
}
public class Phone {public void charging(IVoltage5v iVoltage5v)
{if (iVoltage5v.output5v() == 5)
{System.out.printf("可以充电");
}
else
{System.out.printf("不能充电");
}
}
}
public class client {public static void main(String[] args) {Phone phone = new Phone();
IVoltage5v iVoltage5v = new VoltageAdapter();
phone.charging(iVoltage5v);
}
}
2. 对象适配器模式实现接口适配器核心思想是通过一个抽象类继承接口,并对所有的接口方法做默认空实现,那么该抽象类的子类就可以有选择的覆盖父类中的某些方法,而不必覆盖全部方法。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧