一:相关定义
适配器模式:将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。
二:相关类图和示例
适配器模式类图:
良好的体现了OO设计原则:组合;看下面示例来进行理解;
适配器模式示例:
鸭子适配器实现了鸭子接口(被客户端调用的接口),通过组合的方式,使用被适配对象(火鸡)的的引用,将Client对鸭子接口的操作传递给了火鸡(被适配接口),下面是核心代码:
鸭子接口(被调用接口):
//鸭子实现quack,具备呱呱叫和飞行的能力
public interface Duck{
public void quack();
public void fly();
}
火鸡接口(被适配的接口):
//火鸡不会呱呱叫,只会咯咯(gobble)叫
public interface Turkey{
public void gobble();
public void fly();
}
来看我们的主角适配器:
public class TurkeyAdapter implements Duck{
Turkey turkey;
public TurkeyAdapter(Turkey turkey){
this.turkey = turkey;
}
public void quack(){
turkey.gobble();
}
public void fly(){
//火鸡飞行距离短,需要非5段
for(int i=0; i < 5; i++){
turkey.fly();
}
}
}
哈哈,完成了。
参考书籍:《head first 设计模式》