/**
* 书本:《Thinking In Java》
* 功能:适配器设计模式
* 文件:FilterAdapter.java
* 时间:2015年4月2日20:52:07
* 作者:cutter_point
*/
package Lesson9Interfaces.interfaceprocessor;
import Lesson9Interfaces.filters.BandPass;
import Lesson9Interfaces.filters.Filter;
import Lesson9Interfaces.filters.HighPass;
import Lesson9Interfaces.filters.LowPass;
import Lesson9Interfaces.filters.Waveform;
class FilterAdapter implements Processor //这个类,感觉就是一个中转站,吧一个Filter类型的参数传入,转换成FilterAdapter类型,而这个类型确实从Processor导出的,那么filter类型和Processor类型就结合了
{
Filter filter;
public FilterAdapter(Filter filter)
{
this.filter = filter;
}
@Override
public String name()
{
return filter.name();
}
@Override
public Waveform process(Object input)
{
return filter.process((Waveform) input);
}
}
public class FilterProcessor
{
public static void main(String [] args)
{
Waveform w = new Waveform();
Apply.process(new FilterAdapter(new LowPass(1.0)), w);
Apply.process(new FilterAdapter(new HighPass(2.0)), w);
Apply.process(new FilterAdapter(new BandPass(3.0, 4.0)), w);
}
}
使用适配器设计模式,适配器中的代码将接受你所拥有的接口,并产生你所需要的接口
我觉得,就是类的组合,吧原来的类封装到新类里面,在新类里面实现需求的各种接口
输出:
Using Processor LowPass obj1
Waveform 0 obj1
Using Processor HighPass obj1
Waveform 0 obj1
Using Processor BandPass obj1
Waveform 0 obj1
【ThinkingInJava】14、适配器设计模式 (2)
原文地址:http://blog.csdn.net/cutter_point/article/details/45165575