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

这是一个很简单、很简洁、很棒、很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()));
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 反射:运行时类信息 Person person = new Person("luoxn28", 23); Cl...
    鼓励自己前进阅读 277评论 0 0
  • 前言 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过...
    Code猎人阅读 593评论 0 2
  • JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的...
    易点梅阅读 202评论 0 0
  • Subject类,定义了RealSubject和Proxy的共用接口,这样就在任何使用RealSubject的地方...
    联旺阅读 252评论 0 0
  • 1,静态代理 1)静态代理image.pngimage.png 2,动态代理 1)newProxyInstance...
    沐兮_d64c阅读 506评论 0 1

友情链接更多精彩内容