7.适配器模式

1.需要适配的两个接口

public interface Duck {
	public void quack();
	public void fly();
}
public interface Turkey {
	public void gobble();
	public void fly();
}

2.适配器转换接口

//这里是披着鸭皮的火鸡
public class TurkeyAdapter implements Duck { private Turkey turkey; public TurkeyAdapter(Turkey turkey){ this.turkey=turkey; } public void quack() { // TODO Auto-generated method stub this.turkey.gobble(); } public void fly() { // TODO Auto-generated method stub turkey.fly(); } }

3.具体实现需要适配的接口的类

public class MallardDuck implements Duck{

	public void quack() {
		System.out.println("MallardDuck quack");
	}

	public void fly() {
		System.out.println("MallardDuck fly");
	}

}

public class WildTuekey implements Turkey{

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

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

}

4.应用

public class App {
	public static void main(String[] args) {
		MallardDuck duck=new MallardDuck();
		WildTuekey turkey=new WildTuekey();
		TurkeyAdapter adapter=new TurkeyAdapter(turkey);
		duck.fly();
		duck.quack();
		adapter.fly();
		adapter.quack();
		turkey.fly();
		turkey.gobble();
	}
}

5.接口应该是这样的,鸭接口调出来 的是火鸡的方法

 

posted @ 2017-09-02 18:29  Kyhoon  阅读(185)  评论(0编辑  收藏  举报