经常遇到在处理一个类的时候(以参数方式传入),另一个完全没有继承关系的类无法适应到该方法统一处理,这个时候就可以考虑使用适配器模式了。适配器模式顾名思义就是讲一个无法被处理的类,通过适配成为一个可以被处理的类。如下例子
//Fileter类包含一个打印的处理函数
public class Filter {
public void process() {
System.out.println("filter process.");
}
}
//Adaptor接口也有一个process函数,但是它和Filter没半毛钱关系
public interface Adaptor {
void process();
}
//FilterAdaptor适配Adapor,使得它可以被当成Adaptor
//来被处理
public class FilterAdaptor implements Adaptor {
private Filter filter;
public FilterAdaptor(Filter filter){
this.filter = filter;
}
@Override
public void process() {
filter.process();
}
}
//MyTestAdaptor的apply方法只能处理Adaptor类型的对象
//但是通过适配器FilterAdaptor的包装,相当于apply也可
//以处理Filter类型的对象
public class MyTestAdaptor {
//对Adaptor类进行处理
public static void apply(Adaptor adaptor){
adaptor.process();
}
public static void main(String[] args) {
apply(new FilterAdaptor(new Filter()));
}
}