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

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

时间: 2024-08-01 06:39:11

【ThinkingInJava】14、适配器设计模式 (2)的相关文章

【ThinkingInJava】12、适配器设计模式

/** * 书本:<Thinking In Java> * 功能:适配器设计模式 * 文件:Processor.java * 时间:2015年4月2日20:36:59 * 作者:cutter_point */ package Lesson9Interfaces.interfaceprocessor; public interface Processor { String name(); Object process(Object input); } /** * 书本:<Thinking

适配器设计模式

类的适配器模式 对象的适配器模式 接口的适配器模式 思想: 将类的某个接口转换成客户端期望的另一个接口表示 目的: 消除由于接口不匹配造成的类的兼容性问题 1.UML图之类的适配器设计模式 public class Source { 2. 3. public void method1() { 4. System.out.println("this is original method!"); 5. } 6.} [java] view plaincopy 1.public interfa

适配器设计模式初探(Java实现)

本篇随笔主要介绍Java实现设配器设计模式. 先来看下待解决的问题: (图片转自http://blog.csdn.net/jason0539) 由上图的情况可知,欧洲壁式插座只有三足插口,如果我们想要使用的是两足插口,就需要适配器来进行转换.(适配器一面是三足插口,一面是两足插口) 适配器模式一般有两种实现方式: 1.类适配器 2.对象适配器. 先来看下类适配器的UML图:  客户端只能操纵 Target 接口的 Request 方法来进行需要的操作(当然这里就相当于调用 Request 方法使

6.适配器设计模式

public interface PinPlug{ void charge(); } 1.概述 适配器设计模式针对如下情况:-----客户需要用某个接口,但是能提供服务的接口没有实现那个接口. 客户端只能使用某种接口---客户端是台灯,接口是双孔插座 服务端----服务类是三孔插座 适配器类是服务类和客户端中间的一个桥接类---插线板 2.代码 适配器模式的分类: 类适配器----通过继承实现 对象适配器--通过组合实现 2.1类适配器 功能描述:为台灯充上电照明(台灯只能使用双孔插座) pub

适配器设计模式简介

适配器模式是将将一个类的接口适配成用户所期待的. 生活中适配器也无处不在.常见的是电源适配器.一个15V笔记本通过电源适配器可以接在220V的电压下使用. 想象这么一个需求场景.在项目早期建立了很多类库,这个类库中方法众多,代码复杂,加入新的方法后或者修改旧有方法会使得原类库中方法大幅修改.(或者类库源码找不到了,也难以进行修改).那么此时可以重新建立一个新接口,通过适配器而使用原有方法. 适配器模式就是将一个接口转化为客户希望的另一个接口. 适配器的常用分类: 现在主要介绍单向适配器和单接口适

接口 interface 以及适配器设计模式原理

定义接口用的不是class,而是interface. 接口中常见的成员:而且这些成员都是固定的修饰符. 1.全局变量:public static final (不写的时候java会默认添加上去,但是阅读性不好) 2.抽象方法:public abstract 接口中的成员都是公共权限的. 类与类之间是继承关系,类与接口之间是实现关系. 接口实现implements 接口不可以实例化,只能由实现了接口的子类覆盖了接口中所有的抽象方法后,该子类才可以实例化,否则这个子类就是一个抽象类. 在java中不

java开发中使用的适配器设计模式

package shipeiqidemo; /* * java中常见的一种设计模式:适配器 * 来源:一个子类要去实现接口,那么就必须要实现接口全部的抽象方法,有的时候抽象方法 * 很多,但是又用不着去全部实现,所以此时就定义一个抽象类去实现这个接口,然后通过子类去继承 * 这个抽象类,这个抽象类就简称适配器 */ public class shipeiqidemo { public static void main(String[] args) { //zhuozi zz = new zhuo

十九、适配器设计模式

1. 适配器模式介绍 我们在日常生活中,会经常接触到设配器模式,比如我们的充电器,不同的手机接口类型可能不一样,这个时候只要一个转接口,就可以解决我们的问题.这个转接口就是我们的适配器. 定义 适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起的两个类能够在一起工作. 2. 适配器模式的使用场景 系统需要使用现有的类,而此类的接口不符合系统的需要,即接口不兼容. 想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的

设计模式之----------适配器设计模式

<?php /** **适配器模式:将需要把一类对象转化成另一类对象 **把源接口转化为目标接口 **适用范围:1.存在一个类,你想应用,接口却不是你想要的 **2. ****/ //目标接口 interface Target{ public function simpleFunction1(); public function simpleFunction2(); } //源接口 class Adaptee{ public function simpleFunction1(){ echo 's