结构模式之双向适配器模式

package com.eric.design.adapter;
//双向适配器模式
interface IAa{
	public void funA1();
	public void funA2();
}
class Aa implements IAa{
	public void funA1(){
		System.out.println("Aa:funA1");
	}
	public void funA2(){
		System.out.println("Aa:funA2");
	}
}
interface IBb{
	public void funB1();
	public void funB2();
}
class Bb implements IBb{
	public void funB1(){
		System.out.println("Bb:funB1");
	}
	public void funB2(){
		System.out.println("Bb:funB2");
	}
}
class AaBb implements IAa,IBb{//组合Aa和Bb,将AaBb当做Aa和Bb来使用
	IAa aa;
	IBb bb;
	public void setAa(IAa aa){
		this.aa = aa;
	}
	public void setBb(IBb bb){
		this.bb = bb;
	}
	//功能编写
	public void funA1(){
		aa.funA1();
		bb.funB1();
	}
	public void funB2(){
		bb.funB2();
		aa.funA2();
	}
	//重写其他功能,以免功能丢失
	public void funA2(){
		aa.funA2();
	}
	public void funB1(){
		bb.funB1();
	}
}
public class Adapter1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		AaBb aaBb = new AaBb();
		aaBb.setAa(new Aa());
		aaBb.setBb(new Bb());
		aaBb.funA1();
		aaBb.funB2();
	}

}

猜你喜欢

转载自wxbin-perfect.iteye.com/blog/1687502
今日推荐