//20210119
写在前面:刚期末考试完,考了面向对象,里边儿有23个设计模式,我寻思着考完挨个儿实现一下,本文实现适配者模式
核心思想
- 构造一个适配器类,该类有原本的功能,也能糅合其他类的功能,最终通过一个类实现多个类的功能(这些类之间原本之间并不能通信,而适配器为多个类提供接口,然后统一输出)
程序源代码如下:
//适配器抽象类
public abstract class CarController {
//此类中有一个移动的方法
public void move(){
System.out.println("玩具汽车正在移动");
}
public abstract void sound();
public abstract void light();
}
//适配者类————发光
public class PoliceLight {
public void alarmLight(){
System.out.println("发出亮光");
}
}
//适配者类————声音
public class PoliceSound {
public void alarmSound(){
System.out.println("发出声音");
}
}
//适配器实现类
public class PoliceCarAdapter extends CarController{
private PoliceLight policeLight;
private PoliceSound policeSound;
public PoliceCarAdapter(){
policeLight = new PoliceLight();
policeSound = new PoliceSound();
}
@Override
public void sound() {
policeSound.alarmSound();
}
@Override
public void light() {
policeLight.alarmLight();
}
}
//测试主类
public class Main {
public static void main(String[] args) {
CarController policeCarAdapter = new PoliceCarAdapter();
policeCarAdapter.move();
policeCarAdapter.light();
policeCarAdapter.sound();
}
}
- 输出如下:
以上
希望对大家有所帮助