一文吃透动态代理!

前言 

        动态代理几乎是面试必问题,因为Spring AOP的实现原理之一就是动态代理,此外,动态代理相较其他设计模式而言,它还比较特殊,动态代理需要动态生成一个类,而且它还有两种动态生成类的实现方式;

 示例

        先写一个JDK动态代理,一个演员需要有经纪人,我们把演员当成被代理类,经纪人当成代理类;

演员类Actor.java:

package com.lw.designpattern.proxy.dynamic;

public class Actor {
    public void act() {
        System.out.println("某毯星戛纳走红毯");
    }
}

调用处理类ActorInvocation.java,为什么要设计这么一个类,后面讲

package com.lw.designpattern.proxy.dynamic;

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

public class ActorInvocation implements InvocationHandler {

    T target;

    public ActorInvocation(T target) {
        this.target = target;

你可能感兴趣的:(面试集锦,Java,设计模式,动态代理,CGLib)