静态代理
- .静态代理是在程序运行前就知道代理哪个接口,所以在运行前就与接口或者类进行了绑定,无法同时代理多个接口,故很容易造成代码冗余
- .代理类必须与被代理类实现同一接口
- .代理主要作类的增强
public class StaticTest {
public static void main(String[] args) {
AnimalProxy animalProxy = new AnimalProxy(new Cat());
animalProxy.eat();
}
}
interface Animal{
void eat();
}
class Cat implements Animal{
@Override
public void eat() {
System.out.println("猫吃鱼");
}
}
class AnimalProxy implements Animal{
Animal animal;
AnimalProxy(Animal animal){
this.animal = animal;
}
@Override
public void eat() {
start();
animal.eat();
end();
}
private void start(){
System.out.println("猫抓鱼");
}
private void end(){
System.out.println("猫吃饱了");
}
}
运行结构