1. 程式人生 > 實用技巧 >設計模式結構型之代理模式

設計模式結構型之代理模式

什麼是代理,在現實生活中,我們去買火車票,可以到各個地方的火車票代售點去購買,而不用到火車站去,代售點本身只需要引用火車站的業務就擁有了售票功能。

在軟體的設計中,我們可以也可以通過一個代理類來實現真實業務方法。程式碼實現如下:

    /// <summary>
    /// 真實業務類
    /// </summary>
    public class RealSubject
    {
        public void DoSomething()
        {
            Console.WriteLine("執行火車站賣票業務");
        }
    }

    
/// <summary> /// 代理類 /// </summary> public class ProxySubject { private readonly RealSubject _realSubject = new RealSubject(); public void DoSomething() { _realSubject.DoSomething(); } }

    class Program
    {
        static void
Main(string[] args) { { //正常呼叫 RealSubject subject = new RealSubject(); subject.DoSomething(); } { //通過代理呼叫 ProxySubject subject = new ProxySubject(); subject.DoSomething(); } } }

使用代理模式,我們可以在代理類中實現一些我們平時需要加入的非業務的需求,比如異常處理,加入日起,快取,許可權代理,延遲代理等,而不需要修改我們的真實業務類。這樣我們真實業務類可以更專注做好與系統業務需求相關的事情,保證真實業務類的簡潔。