设计模式之代理模式

代理模式

为其他对象提供一种代理,以控制对这个对象的访问

Subject类

package com.hml.proxy;

public interface Subject {

    public void request();
}

RealSubject类

package com.hml.proxy;

public class RealSubject implements Subject {

    public void request() {

    }

}

ProxySubject类(包含被代理的对象)

package com.hml.proxy;

public class ProxySubject implements Subject {

    private RealSubject subject;

    public void request() {
        if (subject == null) {
            subject = new RealSubject();
        }
        subject.request();
    }

}

类图

代理模式应用

1、远程代理,为不同的对象在不同的地址空间提供局部代表,这样可以隐藏一个对象在不同的地址空间的事实。

2、虚拟代理,根据需要创建开销很大的对象,通过它来存放实例化需要很长时间的真实对象

3、安全代理,控制对真实对象的访问权限

4、智能引导,指当调用真实的对象时,代理处理另外一些事

原文地址:https://www.cnblogs.com/heml/p/4620568.html