您的位置:首页 > 其它

设计模式-适配器

2015-04-08 10:00 288 查看
定义:将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。



//定义鸭子接口
public interface Duck {
public void quack();
public void fly();
}
//绿头鸭
public class MallardDuck implements Duck{

@Override
public void quack() {
// TODO Auto-generated method stub
System.out.println("duck ... quack .... quack");
}

@Override
public void fly() {
// TODO Auto-generated method stub
System.out.println("duck ... fly ... fly");
}

}
//定义火鸡接口
public interface Turkey {

public void gobble();
public void fly();
}
//实现火鸡接口
public class WildTurkey implements Turkey{

@Override
public void gobble() {
// TODO Auto-generated method stub
System.out.println("turkey ... gobble ... gobble");
}

@Override
public void fly() {
// TODO Auto-generated method stub
System.out.println("turkey ... fly ... fly");
}

}
//适配器,火鸡适配鸭子
public class TurkeyAdapter implements Duck{

private Turkey mTurKey = null;

public TurkeyAdapter(Turkey trukey){
mTurKey = trukey;
}
@Override
public void quack() {
// TODO Auto-generated method stub
if(mTurKey != null)
mTurKey.gobble();
}

@Override
public void fly() {
// TODO Auto-generated method stub
if(mTurKey != null)
mTurKey.fly();
}

}
public class Client {

public static void main(String[] args) {

MallardDuck duck = new MallardDuck();

WildTurkey turkey = new WildTurkey();

Duck turkeyAdapter = new TurkeyAdapter(turkey);

testDuck(duck);

testDuck(turkeyAdapter);
}

static void testDuck(Duck duck){
if(duck != null){
duck.quack();
duck.fly();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: