适配器
将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
Spring AOP
由于Advisor链需要的是MethodInterceptor(拦截器)对象,所以每一个Advisor中的Advice都要适配成对应的MethodInterceptor对象。
FutureTask
FutureTask间接同时实现了Future接口和Runnable接口,提供了一种异步可取消执行任务的机制。该类支持执行的任务最后完成后返回一个结果。
FutureTask提供了两种构造器,如下:
- public FutureTask(Callable callable){…}
- public FutureTask(Runnable runnable, V result) {…}
在FutureTask内部,将第二种构造器中的Runnable对象最终还是转换为了Callable对象,方式如下:
可以看到适配器并不一定要实现目标接口,SpringAop这个例子就没有,他们的共同特点在于适配器类能够将原始类转化为目标内,做到这个目的就够了。