代理模式:
class B {
A a;
public B(){a=new A();}
f(){a.f()}
}
B b=new B();
b.f(); //实质就是调用A的f方法
适配器模式:
class B implements AA{
AA a =new A();
f(){a.f()}
}
AA aa=new B();
aa.f();
//通过接口调用A类的方法,A的方法和接口的方法不一致,需要“翻译者类B”适配
//D接口中attack()方法,而A中是 进攻() 方法
//一般的如果适配就是AA a =new A(); a.f();