Proxy => 透過代理 (Proxy) 間接操作真實物件
=> 強調間接性 => 大家都透過 Proxy '間接' 碰真實物件 => 所以所有行為都可以被 Proxy 掌控
也因此什麼時後需要用到 Proxy ?
1. 我想隱藏真實物件到底是誰
2. 因為是透過 Proxy 間接操作 所以可以在 Proxy 中自己再做一些加工 例如 Cache, 權限, 其他...
可以得知程式碼會怎麼寫?
1. 真實物件一定不是 new 在主程式中 => 因為主程式中 new 的一定是 Proxy
2. 真實物件一定是 new 在 Proxy 中,所以呼叫 Proxy = 間接呼叫主程式
所以就能看程式碼了
using System;
using System.Collections.Generic;
using System.Linq;
namespace ConsoleApplication1
{
/// <summary>
/// Proxy 強調間接性 => 大家都透過我 '間接' 碰真實物件 => 所以所有行為都可以被我掌控
/// </summary>
class Program
{
static void Main(string[] args)
{
Proxy proxy = new Proxy();
proxy.Request();
/*
1. 隱藏真實物件
2. 因為是透過 Proxy 間接操作真實物件 所以可以再自己加工 例如 Cache, 權限, 其他...
*/
}
}
abstract class BaseClass
{
public abstract void Request();
}
class RealClass : BaseClass
{
public override void Request()
{
}
}
/// <summary>
/// 用戶端透過 Proxy 存取真實物件
/// </summary>
class Proxy : BaseClass
{
//真實物件被 new 在 Proxy 中
RealClass realObj = new RealClass();
public override void Request()
{
//透過 Proxy 間接操作真實物件
realObj.Request();
}
}
}