⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adapter2.java

📁 郭克华j2ee高级框架实战教学视频源代码 这个是比较值得一看的 由郭克华博士在总结多年Java培训的基础上
💻 JAVA
字号:
/*应用需要凡是以后A的对象调用了funA1方法,一定要同时调用B的funB1方法; 
B的对象调用了funB2方法,一定要同时调用A的funA2方法;怎么办?不能改变源代码*/
//双向适配模式:组合法
interface IA{
	public abstract void funA1();
	public abstract void funA2();
	}
class A implements IA{ 
	public void funA1(){
		System.out.println("A.funA1");
		}
	public void funA2(){
		System.out.println("A.funA2");
		}
}

interface IB{
	public abstract void funB1();
	public abstract void funB2();
	}
class B implements IB{ 
	public void funB1(){
		System.out.println("B.funB1");
		}
	public void funB2(){
		System.out.println("B.funB2");
		}
}

class AB implements IA,IB{//组合A和B,将AB当成A和B来使用
	private IA ia;
	private IB ib;
	public void setIa(IA ia){//可以通过Spring框架来进行装配
		this.ia = ia;
		}
	public void setIb(IB ib){
		this.ib = ib;
		}
	///功能编写
	public void funA1(){
		ia.funA1();//这句话如果去掉,就是功能替换
		ib.funB1();
		}
	public void funB2(){
		ib.funB2();
		ia.funA2();
		}	
	//重写其他功能,以免丢失
	public void funA2(){
		ia.funA2();
		}
	public void funB1(){
		ib.funB1();
		}
	}


public class Adapter2{//客户端,最终使用方
	public static void main(String args[]){
		AB ab = new AB();
		ab.setIa(new A());
		ab.setIb(new B());
		ab.funA1();
		ab.funB2();
		}
	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -