今天看啥
    热点:

      天发国际娱乐官网:在中美即将举办首脑会晤、蔡英文寄望借美日制中策略再遭挫败的国际大环境下,蔡英文当局似有借520谈话微调两岸政策的趋势。

      代理模式---proxy,代理---proxy


      代理(Proxy)模式给某一个对象提供一个代理,并由代理对象控制对原对象的引用。

      为其它对象提供一种代理以控制对目标对象的访问。即第三方对象通过访问代理对象而达到访问目标对象之目的,与此同时,代理对象在访问目标对象前后加入特定的逻辑以实现功能的扩展



        

      interface IProxy

          {

              string Function1();

              string Function2();

          }

          远程对象实现:

          /// <summary>

          /// 模拟的远程对象

          /// </summary>

          public class LongDistanceClass:IProxy

          {

              #region IProxy 成员

              public string Function1()

              {

                  //do someting

                  return "LongDistanceClass.Function1";

              }

              public string Function2()

              {

                  //do someting

                  return "LongDistanceClass.Function2";

              }

              #endregion

          }

          接下来就要实现代理类型,使用代理对象访问模拟的远程对象,代理类型实现如下:

          public class ProxyClass:IProxy

          {

              #region IProxy 成员

              public string Function1()

              {

                  //to access LongDistanceClass.Function1

                  LongDistanceClass obj = new LongDistanceClass();

                  return obj.Function1();

              }

              public string Function2()

              {

                  //to access LongDistanceClass.Function2

                  LongDistanceClass obj = new LongDistanceClass();

                  return obj.Function2();

              }

              #endregion

          }

       

          最后实现客户端代码:

          class Class1

          {

              [STAThread]

              static void Main(string[] args)

              {

                  IProxy pro = new ProxyClass();

                  Console.WriteLine(pro.Function1());

                  Console.WriteLine(pro.Function2());

                  Console.Read();

              }

          }

          运行结果如下:

          LongDistanceClass.Function1

      LongDistanceClass.Function2

       

       

      代理模式和装饰者模式上在语法形式上几乎完全一样,那么它们的区别在哪里呢?
      装饰者模式:动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更加灵活
      代理模式:为其它对象提供一种代理以控制对这个对象的访问。

      其实,它们的着重点一个在于“增加”职责,另一个在于“控制”访问。这是它们最本质的区别。

      由此可以看到:学习设计模式重点在于“语义”上把握,而不是追求它的“形式。 

      www.1click-soft.comtrue/article/20180111/207452.htmlTechArticle代理模式---proxy,代理---proxy 代理(Proxy)模式给某一个对象提供一个代理,并由代理对象控制对原对象的引用。 为其它对象提供一种代理以控制对目标对象的访问。即第三方对象通过...

      相关文章

        暂无相关文章

      帮客评论

      视觉看点
      百度 360 搜狗