学习Java之day29
1. 静态代理举例
/*
静态代理举例
特点:代理类和被代理类在编译期间,就确定下来了。
*/
public class StaticProxyTest {
public static void main(String[] args) {
ProxyClothFactroy proxy1 = new ProxyClothFactroy(new NikeClothFactroy());
proxy1.produceCloth();
ProxyClothFactroy proxy2 = new ProxyClothFactroy(new LiningClothFactroy());
proxy2.produceCloth();
}
}
interface ClothFactory{
void produceCloth();
}
//代理类
class ProxyClothFactroy implements ClothFactory{
//用被代理类进行实例化
private ClothFactory clothFactory;
ProxyClothFactroy(ClothFactory clothFactory){
this.clothFactory = clothFactory;
}
2. 动态代理的举例
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
/**
*
* 动态代理的举例
*
*/
interface Human{
String getBelief();
void eat(String food);
}
//被代理类
class SuperMan implements Human{