美文网首页
14.7动态代理(上)(代理)

14.7动态代理(上)(代理)

作者: 陈晓松快点跑 | 来源:发表于2024-10-22 10:35 被阅读0次

这是一个很简单、很简洁、很棒、很nice的小例子。

代理
这里给出这个例子完全是跟后面的动态代理做对比。


↓↓↓
来本公司干活必须会以下两种技能,
一、void doSomething();
二、void somethingElse(String arg);
↓↓↓

public interface Interface {
    void doSomething();
    void somethingElse(String arg);
}

RealObject类

↓↓↓
RealObject类 纯纯的打工人
↓↓↓

public class RealObject implements Interface {
    @Override
    public void doSomething() {
        System.out.println("RealObject doSomething");
    }

    @Override
    public void somethingElse(String arg) {
        System.out.println("RealObject somethingElse " + arg);
    }
}

SimpleProxy类

↓↓↓
SimpleProxy类像一个贱贱中层领导,就会传个话。还好他不传瞎话。
下面这个SimpleProxy类就是把上面的RealObject类包含在自己的内部,当有人叫SimpleProxy类做事情的时候,SimpleProxy类就叫RealObject类去做。可怜的RealObject类纯纯的打工人。可恶的SimpleProxy类就是个传话的人。SimpleProxy类对不起他拿的工资。降低了社会效率。嗯,就这样。
↓↓↓

public class SimpleProxy implements Interface {

    private Interface proxied;

    public SimpleProxy(Interface proxied) {
        this.proxied = proxied;
    }

    @Override
    public void doSomething() {
        System.out.println("SimpleProxy doSomething");
        proxied.doSomething();
    }

    @Override
    public void somethingElse(String arg) {
        System.out.println("SimpleProxy somethingElse " + arg);
        proxied.somethingElse(arg);
    }
}

main

public class SimpleProxyDemo {

    public static void consumer(Interface iface) {
        iface.doSomething();
        iface.somethingElse("bonobo");
    }

    public static void main(String[] args) {
        consumer(new RealObject());
        consumer(new SimpleProxy(new RealObject()));
    }
}

相关文章

  • 面试系列~动态代理实现与原理

    动态代理有JDK动态代理, CGLIB动态代理, SpringAOP动态代理 一,JDK动态代理  jdk动态代理...

  • 编程常用的设计模式

    动态代理和静态代理 静态代理 动态代理 静态代理与动态代理的区别 JDK中的动态代理和CGLIB 实现动态代理的方...

  • Spring的AOP原理分析

    一 动态代理 动态代理分为JDK动态代理和CGLIB动态代理 jdk动态代理 被代理类(目标类)和代理类必须实现同...

  • java代理模式2_动态代理_jdk

    动态代理 相对于静态代理,动态代理在创建代理对象上更加的灵活,动态代理类的字节码在程序运行时,由java反射机制动...

  • java代理模式2.2_动态代理_cglib

    动态代理 相对于静态代理,动态代理在创建代理对象上更加的灵活,动态代理类的字节码在程序运行时,由java反射机制动...

  • 设计模式之代理模式

    代理分为静态代理和动态代理。 动态代理又包括基于JDK的动态代理、基于CGlib 的动态代理、基于Aspectj实...

  • Java高级主题(五)——动态代理

    代理可以分为静态代理、动态代理,动态代理又可以分为 jvm的动态代理 和 cglib的动态代理。像spring框架...

  • 动态代理的原理及其应用

    动态代理的介绍 动态代理是一种在运行时动态地创建代理对象,动态地处理代理方法调用的机制。 实际上它是一种代理机制。...

  • 动态代理的两种方式

    静态代理就不说了,基本用到的都是动态代理。 Java中动态代理有JDK动态代理和CGLIB动态代理。 JDK代理的...

  • Spring AOP 一

    上一篇讲了jdk动态代理,下面我们来说说SpringAOP。SpringAOP是基于动态代理的,它对动态代理又做了...

网友评论

      本文标题:14.7动态代理(上)(代理)

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