您的位置:首页 > 职场人生

设计模式读书笔记-适配器模式

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();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息