美文网首页JAVA设计模式
Java设计模式之二代理模式

Java设计模式之二代理模式

作者: 095b62ead3cd | 来源:发表于2019-06-26 14:45 被阅读0次

    代理模式是指给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用(接口的引用)的结构模式。它的核心思想在于限制直接访问对象,而是通过代理对象访问目标对象,这样做的好处在于保护了目标对象,即使目标对象发生变化,也不会影响到访问者,因为访问者拿到的始终都是代理对象,这保证了目标对象的扩展性。另外,代理对象还可以起到拦截代理方法,改变原方法的参数和返回值以满足代理自身的需求

    代理模式的角色分配:

    目标对象:真正做事的人
    代理对象:持有目标对象,具有和目标对象相同的做事能力
    访问者:需要人做事的人

    以下是示例:

    经理跟助理说,找人把某件事做了,这里面的经理就是访问者,助理就是代理对象,助理找来做事的人就是目标对象。这里面,经理实际操作的是助理,而不是助理找的人,经理不直接操作助理找的人。代码实现:

    首先定义一个接口,助理和目标对象所具有的共同的做事能力:

    public interface DoSth{
          public void doSth(){
          }
    }
    

    定义目标对象,以及所具有的做事能力:

    public class DesObj implements DoSth{
          public void doSth(){
          }
    }
    

    定义代理对象,持有目标对象,以及与目标对象相同的做事能力:

    public class ProxyObj implements DoSth{
            DesObj desObj;
            public void doSth(DesObj desObj){
                    this.desObj = desObj;
            }
    
             public void doSth(){
                  this.desObj.doSth();
             }
    }
    

    定义访问者:

    public class ManagerObj{
            DesObj desObj = new DesObj();
            ProxyObj obj = new ProxyObj();
            obj.doSth(desObj);
            obj.doSth();
    }
    

    相关文章

      网友评论

        本文标题:Java设计模式之二代理模式

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