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();
}
}
结构模式之双向适配器模式
最新推荐文章于 2022-04-12 23:15:26 发布