package test;
/**
* 功能:一个方法原本调用A接口的方法输出,当要调用B接口的方法输出,但不改动这个方法
* 解决方法:利用适配器,该适配器实现A接口,并将B的实现类传入适配器。在A接口的实现方法中,调用B实现类的方法
* @author fantasy
*
*/
public class Test5 {
/**
* @param args
*/
public static void main(String[] args) {
PowerA pa = new PowerAImpl();
show(pa);
PowerAAdapter adapter = new PowerAAdapter(new PowerBImpl());
show(adapter);
}
public static void show(PowerA pa){
pa.showA();
}
}
interface PowerA{
public void showA();
}
class PowerAImpl implements PowerA{
@Override
public void showA() {
System.out.println("showA");
}
}
interface PowerB{
public void showB();
}
class PowerBImpl implements PowerB{
@Override
public void showB() {
System.out.println("showB");
}
}
//适配器
class PowerAAdapter implements PowerA{
private PowerB pb;
public PowerAAdapter(PowerB pb){
this.pb = pb;
}
@Override
public void showA() {
pb.showB();
}
}