public TurkeyAdapter(Turkey turkey) { this.turkey = turkey; }
public void quack() { turkey.gobble();//归根到底还是要(火鸡)适配者自己动手做事. }
public void fly() { for(int i=0; i < 5; i++) { turkey.fly(); } } }
package desginpattern.adapter.iternum;
import java.util.*; /** * enumeration(适配者) 到 Iterator(被适配者) 的适配器类 */ public class EnumerationIterator implements Iterator { Enumeration enumeration;
public EnumerationIterator(Enumeration enumeration) { this.enumeration = enumeration; }
public boolean hasNext() { return enumeration.hasMoreElements(); }
public Object next() { return enumeration.nextElement(); }
public void remove() { throw new UnsupportedOperationException(); } }
package desginpattern.adapter.iternum;
import java.util.*; /** * 测试类 */ public class EnumerationIteratorTestDrive { public static void main (String args[]) { Vector v = new Vector(Arrays.asList(args));
//new一个EnumerationIterator适配器, //把一个Enumeration类型(适配者)作为参数传进去, //最后返回一个iterator(被适配者)类型. Iterator iterator = new EnumerationIterator(v.elements()); while (iterator.hasNext()) { System.out.println(iterator.next()); } } }