设计模式--适配器模式

适配器实际上分两种,有“对象”适配器与“类”适配器。我们这注意讲的是对象适配器。“类”适配器是别的语言的多继承的时候使用。就是通过继承来实现适配器。而我们要说的“对象”适配器是通过组合实现适配。

举个例子你就能明白“对象”适配器了。

假设有 鸭子接口

public interface Duck{

public void quack();

public void fly();

}

//这是绿头鸭

public class MallardDuck implements Duck{

public void quack(){

System.out.println("quack");

}

public void fly(){

System.out.println("i am fly");

}

}

//这是“街头顽禽”

public interface Turkey{

public void gobble();//火鸡不会嘎嘎叫,只会咯咯叫

public void fly();//也会飞,只是飞不远

}

//火鸡类

public class WildTurkey implement Turkey{

public void gobble(){

System.out.println("gobble");

}

public void fly(){

System.out.println(" i am fly a short distance");

}

}

//现在假设你缺少鸭子对象,想用火鸡对象来冒充。显然两者接口不同,所以不能直接使用,就可以写个适配器来实现。

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

}

}

//上面就是适配器的简单例子。很好理解。


推荐阅读更多精彩内容