本帖介紹 Proxy Pattern (代理模式)。
Proxy Pattern (代理模式)
The Proxy Pattern provides a surrogate or placeholder for another object to control access to it...
- Design Patterns: Elements of Reusable Object-Oriented Software
在 GoF 的書中,對 Proxy 模式的定義為:替某個對象,提供一個替身,以控制外界對這個對象的訪問。而這個被替身代理的對象 (被代理者),可能是遠端的對象、創建時需要高成本或大計算量的對象,或需要安全控制的對象。

圖 1 此圖為 Proxy 模式的經典類圖

01_Shell / Program.cs
using System;
namespace _01_Shell
{
//用戶端程序
class Program
{
static void Main(string[] args)
{
//用戶把 Proxy (代理者) 視為 RealSubject (真實的對象) 來操作
Proxy proxy = new Proxy();
proxy.Request();
Console.Read();
}
}
//代理者、被代理者共同實現的接口
abstract class Subject
{
public abstract void Request();
}
//被代理者。真實的對象,把復雜性封裝在此
class RealSubject : Subject
{
//真正做事的方法。把復雜性封裝在此,用戶無須知道細節
public override void Request()
{
Console.WriteLine("真實的請求");
}
}
//代理者
class Proxy : Subject
{
RealSubject realSubject;
public override void Request()
{
if (realSubject == null)
{
realSubject = new RealSubject();
}
realSubject.Request();
}
}
}
/*
執行結果:
真實的請求
*/
NET技術:C# Design Patterns (4) - Proxy,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。