码迷,mamicode.com
首页 > 编程语言 > 详细

【ThinkingInJava】14、适配器设计模式 (2)

时间:2015-04-21 09:41:15      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:java编程思想   java   类的组合   设计模式   

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

标签:java编程思想   java   类的组合   设计模式   

原文地址:http://blog.csdn.net/cutter_point/article/details/45165575

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!