JAVA 设计模式 代理模式

时间:2021-01-30 19:01:49

用途


代理模式 (Proxy)
为其他对象提供一种代理以控制对这个对象的访问
代理模式是一种结构型模式
结构

aaarticlea/png;base64,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" alt="" />

图-代理模式结构图

Subject : 定义了 RealSubject 和 Proxy 的公共接口,这样就在任何使用 RealSubject 的地方都可以使用 Proxy 。

abstract class Subject {

    public abstract void Request();

}

RealSubject : 定义 Proxy 所代表的真实实体。

class RealSubject extends Subject {

    @Override

    public void Request() {

        System.out.println("真实的请求");

    }

}

Proxy : 保存一个引用使得代理可以访问实体,并提供一个与 Subject 的接口相同的接口,这样代理就可以用来替代实体。

class Proxy extends Subject {

    private RealSubject real;

    

    @Override

    public void Request() {

        if (null == real) {

            real = new RealSubject();

        }

        real.Request();

    }

}
应用场景

1、远程代理

为一个远程对象在不同地址空间提供本地化代表。

2、虚拟代理

根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的真实对象。

3、安全代理

用来控制真实对象的访问权限。

4、智能指引

是指当调用真实对象时,代理处理另外一些事。

要点

代理模式介绍了一种访问对象的间接等级。

一个远程代理可以隐藏一个对象在不同地址空间的细节。

一个虚拟代理可以根据需要最优化创建对象的开销。

而安全代理和智能指引都允许访问对象的同时处理其他事务。

推荐

本文属于 JAVA设计模式系列

参考资料

《大话设计模式》

《HeadFirst设计模式》