hand first 设计模式 -适配器模式
2009-09-17 00:00:00 来源:WEB开发网适配器模式 :将一个类的接口,转换成客户期望的另一个接口.适配器上原本接口不兼容的类可以合作无间.
项目比较旧的代码,迭代采用Enumeration
Java代码
public class EnumerationTest {
public Enumeration getEnum(Vector list){
Enumeration e = list.elements();
return e;
}
}
项目比较旧的代码,迭代采用Iterator
Java代码
public class IteratorTest {
public Iterator getIter(Collection list) {
Iterator iterator = list.iterator();
return iterator;
}
}
Enumeration 转换成 Iterator 的适配器
Java代码
public class EnumerationIterator implements Iterator {
public Enumeration enumeration;
public EnumerationIterator(Enumeration enumeration) {
this.enumeration = enumeration;
}
@Override
public boolean hasNext() {
// TODO Auto-generated method stub
return enumeration.hasMoreElements();
}
@Override
public Object next() {
// TODO Auto-generated method stub
return enumeration.nextElement();
}
//由于Enumeration没有相关删除方法,所以执行时抛出异常
@Deprecated
public void remove() {
// TODO Auto-generated method stub
throw new RuntimeException();
}
}
测试方法
Java代码
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
EnumerationTest et = new EnumerationTest();
Vector vector = new Vector();
vector.add(1);
vector.add(2);
vector.add(3);
vector.add(4);
Enumeration enumeration = et.getEnum(vector);
//使用适配器转换成Iterator
EnumerationIterator ei = new EnumerationIterator(enumeration);
display(ei);
}
public static void display(Iterator iterator) {
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
}
}
- ››设计模式:工厂方法模式
- ››设计模式一 - Simple Factory, Factory Method, A...
- ››设计模式重构应用---Decorator模式
- ››设计模式重构应用---Template Method模式
- ››hand first 设计模式 - 装饰者模式
- ››hand first 设计模式 - 工厂模式
- ››hand first 设计模式 - 抽象工厂模式
- ››hand first 设计模式 - 单例模式
- ››hand first 设计模式 - 命令模式
- ››hand first 设计模式 -适配器模式
- ››hand first 设计模式 -外观模式
- ››hand first 设计模式 -模板方法模式
更多精彩
赞助商链接