zoukankan      html  css  js  c++  java
  • Proxy Pattern using C#

    Proxy Pattern using C#

     

     

    Proxy Pattern(代理模式)属于Structural Pattern(结构型模式),Proxy Pattern-Client真正要调用的对象提供一个代理(Surrogate or placeholder),来控制Client对该对象的访问。

     

    1. UML class diagram:

    上图Proxy class就是一个代理类,负责转发来自Client的请求到真正的RealSubject对象。Proxy ClassRealSubject Class共同继承抽象类Subject

     

    2. Sample code

    上述UML class diagram的实现代码(from reference 1):

    // Proxy pattern – Demo code

    using System;

    // 抽象类
    abstract class Subject
    {
      abstract public void Request();
    }

    // 实际要调用的类
    class RealSubject : Subject
    {
      override public void Request()
      {
        Console.WriteLine("Called RealSubject.Request()");
      }
    }
    // 代理类
    class Proxy : Subject
    {
       RealSubject realSubject;
      // Methods
      override public void Request()
      {
        // Uses "lazy initialization"
        if( realSubject == null )
          realSubject = new RealSubject();

        realSubject.Request();
      }
    }

    /// <summary>
    /// Client test
    /// </summary>
    public class Client
    {
      public static void Main( string[] args )
      {
        // Create proxy and request a service
        Proxy p = new Proxy();
        p.Request();
      }
    }

     

    3. Appendix about the article

    温故而知新,运用于无形。

     

    .Net Framework中大量使用到Proxy Design Pattern,如.Net Remoting中的SAO (Server Activated Object)CAO (Client Activated Object)XML Web Services等,Client端都是通过本地Proxy class来转发对Remote Objects or Services的请求,和获取来自Remote的响应。

     

    Reference:

    1Proxy Design Pattern, http://www.dofactory.com/patterns/PatternProxy.aspx

     

  • 相关阅读:
    minicap编译示例
    uniapp H5项目中使用腾讯地图sdk
    腾讯地图打车乘客端小车平滑移动-安卓篇
    地图定位打卡功能示例
    腾讯位置服务个性化图层创建及发布
    腾讯位置服务GPS轨迹回放
    使用腾讯地图实现汽车沿轨迹行驶功能
    地图GPS轨迹录制
    腾讯地图实现微信小程序地图定位教程
    基于腾讯地图定位组件实现周边POI远近排序分布图
  • 原文地址:https://www.cnblogs.com/rickie/p/66459.html
Copyright © 2011-2022 走看看