用途:代理模式主要介绍代理的作用,在我理解,代理就相当于一个交易的中间人,交易时通过中间人完成的,WebService调用的时候,就是一个典型的代理模式。

代理的必要性:比如说,类Subject有三个方法,TestA,TestB和TestC,如果另外一个类RequestSubject1有权限访问Subject的TestA和TestB方法,而不能访问TestC方法,而另外一个访问类RequestSubject2有权限访问Subject的TestB和TestC方法,而不能访问TestA方法,解决这个问题就只能使用代理类来完成了,代理类就是通过一个中介作用,上面描述的是一个部分代理的作用,让请求方和回复方为了安全方法的考虑,间接的进行信息交易。

UML类图:

示例代码:

  抽象基类:

  abstract class Subject

  {

    public abstract void Request();

  }

  真实实体类:

  class RealSubject:Subject

  {

    public override Request()

    {

      //对请求的真正处理功能

    }  

  }

  代理类:

  class Proxy:Subject

  {

    RealSubject realSubject;

    public override void Request()

    {

      if(realSubject ==null)

      {

        realSubject=new RealSubject();

      }

      realSubject.Request();

    }

  }

  客户端调用:

  Proxy proxy=new Proxy();

  proxy.Request();

说明:如果使用部分代理,值代理真实对象的部分方法,代理类就不能继承自和真实类相同的抽象基类了。

  

posted on 2013-07-10 14:39  Kelly_HanShuai  阅读(85)  评论(0)    收藏  举报