把两个不能联系起来的类放到一起使用,而你又不愿意改变他们各自的接口。这种情况下你可以使用“适配器”模式:public class A{ private String strA=""; public void methodA(){ } }public class B{ private String strB=""; public void methodB(){ } }//适配器 public class Adapter extends A{ private B adaptee=new B(); //----->B是被适配者
public Adapter(B classB){ this.adaptee=classB; } public void methodA(){ adaptee.methodB(); } }根据你的实际情况做些变通的话,就可以实现你的需求
如果类A和类B都是接口的话:public class Adapter implements A,B{ private A adapteeA=null; private B adapteeB=null; public Adapter(A classA){ this.adapteeA=classA; } public Adapter(B classB){ this.adapteeB=classB; } public void methodA(){ adapteeB.methodB(); } public void methodB(){ adapteeA.methodA(); } }
2. 干吗要这么用啊?
3. 不能
private String strA=""; public void methodA(){
}
}public class B{
private String strB=""; public void methodB(){
}
}//适配器
public class Adapter extends A{
private B adaptee=new B(); //----->B是被适配者
public Adapter(B classB){
this.adaptee=classB;
} public void methodA(){
adaptee.methodB();
}
}根据你的实际情况做些变通的话,就可以实现你的需求
private A adapteeA=null;
private B adapteeB=null; public Adapter(A classA){
this.adapteeA=classA;
} public Adapter(B classB){
this.adapteeB=classB;
} public void methodA(){
adapteeB.methodB();
} public void methodB(){
adapteeA.methodA();
}
}