设计模式读书笔记-适配器模式
2011-07-20 16:18
127 查看
就是将一个类的接口转换为客户期望的另一格接口,就是实现两个接口不兼容类的无缝对接.
类似生活中的 电源转换器功能;
举个简单例子:
public interface Duck {
public void quack();
public void fly();
}
public interface Turkey {
public void gobble();
public void fly();
}
public class WildTurkey implements Turkey {
public void gobble() {
System.out.println("Gobble gobble");
}
public void fly() {
System.out.println("I'm flying a short distance");
}
}
现在用 Turkey 来伪装 Duck
public class DuckAdapter implements Turkey {
Duck duck;
Random rand;
public DuckAdapter(Duck duck) {
this.duck = duck;
rand = new Random();
}
public void gobble() {
duck.quack();
}
public void fly() {
if (rand.nextInt(5) == 0) {
duck.fly();
}
}
}
public class MallardDuck implements Duck {
public void quack() {
System.out.println("Quack");
}
public void fly() {
System.out.println("I'm flying");
}
}
public class DuckTestDrive {
public static void main(String[] args) {
MallardDuck duck = new MallardDuck();
WildTurkey turkey = new WildTurkey();
Duck turkeyAdapter = new TurkeyAdapter(turkey);
System.out.println("The Turkey says...");
turkey.gobble();
turkey.fly();
}
类似生活中的 电源转换器功能;
举个简单例子:
public interface Duck {
public void quack();
public void fly();
}
public interface Turkey {
public void gobble();
public void fly();
}
public class WildTurkey implements Turkey {
public void gobble() {
System.out.println("Gobble gobble");
}
public void fly() {
System.out.println("I'm flying a short distance");
}
}
现在用 Turkey 来伪装 Duck
public class DuckAdapter implements Turkey {
Duck duck;
Random rand;
public DuckAdapter(Duck duck) {
this.duck = duck;
rand = new Random();
}
public void gobble() {
duck.quack();
}
public void fly() {
if (rand.nextInt(5) == 0) {
duck.fly();
}
}
}
public class MallardDuck implements Duck {
public void quack() {
System.out.println("Quack");
}
public void fly() {
System.out.println("I'm flying");
}
}
public class DuckTestDrive {
public static void main(String[] args) {
MallardDuck duck = new MallardDuck();
WildTurkey turkey = new WildTurkey();
Duck turkeyAdapter = new TurkeyAdapter(turkey);
System.out.println("The Turkey says...");
turkey.gobble();
turkey.fly();
}
相关文章推荐
- 设计模式读书笔记-----适配器模式
- 设计模式读书笔记-----适配器模式
- 设计模式读书笔记-----适配器模式
- 设计模式读书笔记-----适配器模式
- 设计模式读书笔记-----适配器模式
- 适配器模式
- PHP设计模式之适配器模式
- 适配器模式
- 适配器模式
- 适配器模式
- java框架中的适配器模式
- 设计模式----适配器模式 实例
- Java设计模式之适配器模式
- 不兼容结构的协调——适配器模式(一)
- [C++设计模式] adapter 适配器模式
- 适配器模式
- java设计模式(9) - 适配器模式
- java设计模式之四 —— 适配器模式整理
- 适配器模式、装饰模式、代理模式和外观模式
- 设计模式之:适配器模式