package desginpattern.adapter.ducks;
/*
* 适配器模式定义:
* 将一个类的接口,转换成客户期望的另一个接口.适配器让原本接口不兼容的类可以合作无间.
*
* NOTES:
* 适配器有两种:对象适配器和类适配器,分别使用组合和继承两种方式实现,
* 类适配器须同时继承被适配者(adaptee)和目标类(target).
* 此方式只适合于支持多重继承的语言,JAVA并不被支持.
*
* 此类为适配器模式核心类,需要实现被适配者的接口.
* 火鸡(适配者)要装鸭子(被适配者)当然要会鸭子的方法.
*/
public class TurkeyAdapter implements Duck {
//火鸡要扮鸭子,须持有一个(火鸡)适配者的引用,骨子里还是要(火鸡)适配者自己做事.
Turkey turkey;
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());
}
}
}
分享到:
相关推荐
适配器模式的Java实现版本,包含类适配器模式和对象适配器模式的实现,同时也包含两者的UML类图
java设计模式【之】适配器模式【源码】【场景:水和容器】 * 适配器模式,类似(亡羊补牢) * 已经存在的类(功能已经开发完成了),与新需求的功能相似,但是略有差异 * 当已经存在的方法无法满足现有需求,需要...
C#设计模式之适配器模式应用实例
设计模式之适配器模式Java版 设计模式之适配器模式Java版 设计模式之适配器模式Java版 设计模式之适配器模式Java版
[刚刚上传的demo运行有问题,重新传了个新的],这个的一个iOS的适配器模式的实例代码,目前就是一个简单的demo,后期还会更新适配器在 MVC,MVP,MVVM中的使用,demo对应着简书:https://www.jianshu.com/p/e2ebcf19098f,...
实验7 适配器模式、外观模式与模板方法模式---Java设计模式
动态代理模式 适配器模式 实现,都可以运行,有一部分注解
设计模式之适配器模式,通过实际例子讲述适配器模式的使用,原理和特点
适配器模式代码demo 适配器模式代码demo 适配器模式代码demo
适配器模式 设计模式 Adapter 还请各位大S指教
设计模式-适配器模式(讲解及其实现代码)
设计模式--适配器模式java例子
设计模式C++学习之适配器模式(Adapter)
实验七:适配器模式.rar实验七:适配器模式.rar
设计模式的适配器模式的例子,希望对大家有用
设计模式系列之适配器模式,分别以Java,Android,IOS进行讨论