簡介

Proxy Pattern(代理模式)是一種結構型設計模式,為其他物件提供一種代理以控制對這個物件的存取。

問題

當需要在不改變原有物件的情況下,控制對物件的存取時。

解決方案

建立一個代理類別,包裝真實物件,並在代理中加入控制邏輯。

C# 範例

public interface ISubject {
    void Request();
}

public class RealSubject : ISubject {
    public void Request() {
        Console.WriteLine("真實請求");
    }
}

public class Proxy : ISubject {
    private RealSubject _realSubject;
    public void Request() {
        if (_realSubject == null) _realSubject = new RealSubject();
        Console.WriteLine("代理前置處理");
        _realSubject.Request();
    }
}

結論

Proxy Pattern 可用於存取控制、延遲載入等場景。