动态代理

package fanshe_dongtaiproxy;

import java.lang.reflect.Proxy;

public class test {
    public static void main(String[] args) {
        Subject sub = new SubMan();
        proxy p = new proxy(sub);
        Subject  s=(Subject) Proxy.newProxyInstance(sub.getClass().getClassLoader(), sub.getClass() .getInterfaces(), p);
        s.shopping();
    }
}
package fanshe_dongtaiproxy;

public interface Subject {

    public void shopping();

}

public class SubMan implements Subject {

@Override
public void shopping() {
    // TODO Auto-generated method stub
    System.out.println("卖皮草");
}

}

package fanshe_dongtaiproxy;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;

public class proxy implements InvocationHandler {
    private Subject sub;

    public proxy(Subject subject) {
        this.sub = subject;
    }



    @Override
    public Object invoke(Object proxy, Method method, Object[] args)
            throws Throwable {
        // TODO Auto-generated method stub
        System.out.println("市场调查");
        method.invoke(sub);
        System.out.println("意见反馈");
        return null;
    }

}

运行结果 :

市场调查
卖皮草
意见反馈

你可能感兴趣的:(动态代理)