代理模式

代码
using System;
using System.Collections.Generic;

/// <summary>
/// 接口类
/// </summary>
interface IProxy
{
    
string function1();
    
string function2();
}
/// <summary>
/// 实际类
/// </summary>
public class LongDistanceClass:IProxy
{
    
public string function1()
    {
        
return "LongDistanceClass.function1";
    }
    
public string function2()
    {
        
return "LongDistanceClass.function2";
    }
}
/// <summary>
/// 代理类
/// </summary>
public class ProxyClass:IProxy
{
    
public string function1()
    {
        LongDistanceClass myLongDistanceClass
=new LongDistanceClass();
        
return myLongDistanceClass.function1();
    }
    
public string function2()
    {
        LongDistanceClass myLongDistanceClass
=new LongDistanceClass();
        
return  myLongDistanceClass.function2();    
    }
}
public class MyClass
{
    
public static void Main()
    {
        IProxy myproxy
=new ProxyClass();
        Console.WriteLine(myproxy.function1());
        Console.WriteLine(myproxy.function2());
        Console.ReadLine();
    }
}

摘要:在软件系统中,有些对象有时候由于跨越网络或者其他的障碍,而不能够或者不想直接访问另一个对象,如果直接访问会给系统带来不必要的复杂性,这时候可以在客户程序和目标对象之间增加一层中间层,让代理对象来代替目标对象打点一切。这就是本文要说的Proxy模式。

原文地址:https://www.cnblogs.com/mikechang/p/1706965.html