适配器模式
定义:将一个类的接口,转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类,可以一起工作。
作用:将一个接口适配到另一个接口。
已知有一个YoungMan类,随着年龄的增长,他想实现Old接口。但前提是不能改变他和Old接口本身。
public class YoungMan { public void age(){ System.out.println("我的年龄"); } }
interface Old { public abstract void old(); }
于是定义一个时间转换器,帮助他实现Old接口。
public class TimerAdapter extends YoungMan implements Old{ public TimerAdapter() { } @Override public void old() { super.age(); } }
测试代码如下:
public class test { public static void main(String[] args) { YoungMan a = new TimerAdapter(); ((TimerAdapter) a).old(); } }
通过YoungMan的子类实现Old接口,YoungMan类通过多态的方式,父类引用指向子类对象,也间接的实现了Old接口中的方法。
还有一种适配器模式,是通过传入参数的方式,按照上述例子,是将Youngman变成TimerAdapter的内部类,通过构造方法传递进去实现的。这两种适配器模式的本质的相同的。
在java I/O中,用到了许多适配器模式,这几天会一一补充。