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
今日推荐
周排行