美文网首页
Java中实现代理模式

Java中实现代理模式

作者: capo | 来源:发表于2017-05-01 11:31 被阅读23次

代理模式

代理是基本的设计模式之一,它是你为了提供额外的或不同的操作,而插入的用来代替实际对象的对象。这些操作通常涉及与“实际”对象的通信,因此代理通常充当这中间人的角色。下面通过代码结构演示一遍

1. 定义一个接口

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

2. 定义一个实际对象实现这个接口

public class RealObject implements Interface {

    @Override
    public void doSomething() {
        System.out.println("实现---doSomething");
    }

    @Override
    public void somethingElse(String arg) {
        System.out.println("实现---somethingELse");
    }
}

3. 构建一个simpleProxy代理类同时实现了Interface

public class SimpleProxy implements Interface {
    //定义一个接口类型变量强制将变量设置为接口类型
    private Interface proxied;
    public SimpleProxy(Interface proxied) {
        this.proxied = proxied;
    }

    @Override
    public void doSomething() {
       System.out.println("我又实现了---doSomething");
    }

    @Override
    public void somethingElse(String arg) {
        System.out.println("我又实现了---somethingElse");
    }
}

测试使用代理类来调用方法

public class SimpleProxyDemo {
    public static void consumer(Interface iface) {
        iface.doSomething();
        iface.somethingElse("hello world");
    }

    public static void main(String[] args) {
        consumer(new RealObject());
        //将真实对象作为构造参数传入
        consumer(new SimpleProxy(new RealObject()));
    }
}

consumer()接受的Interface,所以它无法知道正在获得的到底是RealObject还是SimpleProxy,因为这两者都实现了Interface。但是SimpleProxy已经被插入到了客户端和RealObject之前,因此它会执行,然后调用RealObject上相同的方法

注:使用代理模式其核心是在代理类中定义一个接口类型的成员变量

参考 Think In Java

相关文章

  • Kotlin-强大的委托

    委托也叫代理,是一种可以以代理方式控制目标对象的访问,设计模式中成为-代理模式。 Java中,我们实现一个代理模式...

  • java中的代理模式与装饰者模式的区别

    java中的代理模式与装饰者模式的区别 代理模式与装饰者模式看起来很像,都实现基础对象实现的接口,在其自身对象中都...

  • 代理模式

    简介 代理模式也是一种增强现有对象的方法,Java中主要有静态代理和动态代理两种模式,在实现具体实现层面,...

  • Spring AOP详解

    AOP AOP的实现一般都是基于 代理模式 ,在JAVA中采用JDK动态代理模式,但是我们都知道,JDK动态代理模...

  • 代理模式

    JAVA的动态代理模式:A接口,A1子类实现A接口,A2子类实现A接口。那么JAVA的动态代理模式会A1、A2.....

  • Java实现动态代理

    参考文章:代理模式及Java实现动态代理 代码: 运行截图:

  • 代理

    来源:java动态代理实现与原理详细分析 代理模式是常用的java设计模式,他的特征是代理类与委托类实现同样的接口...

  • Java学习:Java动态代理(cglib)

    上一篇关于java动态代理的jdk实现中,花了大量篇幅介绍了代理模式和静态代理,最后讲了jdk的动态代理实现,也讲...

  • 静态代理和动态代理

    代理模式是Java模式中很重要的一个。特别是动态代理模式是Spring AOP实现的基石,也是我们理解AOP原理的...

  • Java设计模式:代理模式

    Java设计模式——代理模式 代理模式主要分为接口,委托类,代理类 接口:规定具体方法委托类:实现接口,完成具体的...

网友评论

      本文标题:Java中实现代理模式

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