美文网首页
设计模式:动态代理

设计模式:动态代理

作者: Codes作业本 | 来源:发表于2020-09-28 21:31 被阅读0次

动态代理

第一步:实现钢笔接口

interface PenInterface {

    void write();

    void draw();

}

第二步:学生的手实现钢笔接口

public class StudentHand implements PenInterface {

    @Override
    public void write() {
        System.out.println("学生用笔写字");

    }

    @Override
    public void draw() {
        System.out.println("学生用笔画画");
    }

}

第三步:学生代理的功能

public class StudentProxy implements InvocationHandler {

    private Object mTarget;

    public StudentProxy(Object target) {
        mTarget = target;
    }

    public Object getInstance() {
        return Proxy.newProxyInstance(mTarget.getClass().getClassLoader(), mTarget.getClass().getInterfaces(), this);
    }

    @Override
    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
        doSthBefore();
        Object object = method.invoke(mTarget, args);
        doSthAfter();
        return object;
    }

    private void doSthBefore() {
        System.out.println("调用方法之前");
    }

    private void doSthAfter() {
        System.out.println("调用方法之后");
    }

}

最后:通过学生去动态实现相关功能

public static void main(String[] args) {
    PenInterface penInterface = new StudentHand();
    PenInterface student = (PenInterface) new StudentProxy(penInterface).getInstance();
    student.draw();
    //student.write();
}

相关文章

  • 设计模式之代理模式

    设计模式之代理模式 10分钟看懂动态代理设计模式(升级篇)-对这篇动态代理模式的思路整理 仿JDK实现动态代理逻辑...

  • Spring学习(五)AOP

    SpringAop使用到了了动态代理模式(有关设计模式见设计模式章节)。JDK动态代理代理的目标类必须要实现接口。...

  • retrofit源码剖析

    设计模式:动态代理

  • java动态代理(JDK和cglib)(转载自http://ww

    java动态代理(JDK和cglib) JAVA的动态代理 代理模式 代理模式是常用的java设计模式,他的特征是...

  • Java代理模式之JDK动态代理

    了解什么是动态代理模式,可参考Java设计模式之代理模式 简介 JDK动态代理是java.lang.reflect...

  • Android 代理模式(动态代理)及其原理分析

    代理模式(动态代理)及其原理分析 概念 有一种设计模式叫做代理模式,其中也用到了动态代理。动态代理就是为某一个对象...

  • 代理模式

    结构型设计模式 代理模式 分类 静态代理:运行之前代理类的 class 编译文件已经存在 动态代理:通过反射动态...

  • JDK 动态代理 应用

    动态代理的思想来源于 代理模式本片文章不讲述设计模式,需要学习设计模型知识请自行查阅资料. 被代理类 JDK动态代...

  • Java代理模式之CGLIB动态代理

    了解什么是动态代理模式,可参考Java设计模式之代理模式 简介 前面我们了解了JDK动态代理技术,发现其真实对象必...

  • 代理模式续集

    动态代理 讲代理模式不讲动态代理简直是耍流氓。相比 必知必会的设计模式8[https://www.jianshu....

网友评论

      本文标题:设计模式:动态代理

      本文链接:https://www.haomeiwen.com/subject/vpvjuktx.html