/** * 书本:《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