美文网首页
静态代理模式

静态代理模式

作者: 守住阳光 | 来源:发表于2018-08-13 15:30 被阅读0次

    一、概念

            静态代理模式:为其他对象提供一种代理以控制对这个对象的访问。

    二、UML图

    三、基本代码实现

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

    public abstract class Subject {

            public abstract void request();

    }

    2、RealSubject 类,定义了Proxy所代表的真实实体

    public class RealSubject extends Subject{

            @Override

            public void request() {

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

            }

    }

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

    public class Proxy extends Subject{

            private RealSubject realSubject;

            @Override

            public void request() {

                    if(realSubject==null){

                        realSubject =  new  RealSubject();

                    }

                    realSubject.request();

             }

    }

    四、代理模式的应用

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

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

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

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

    相关文章

      网友评论

          本文标题:静态代理模式

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