設計模式之代理模式(六)

代理模式顧名思義,就是“代理者”幫別人去做事,但是在幫人做事的前後,這個“代理者”可以做一些其它的邏輯。比如日誌代理、緩存代理、權限代理。也屬於AOP的思想,可以在不改變原始類的情況下進行功能擴展。

如有以下原始類:

    public abstract class StudentBase
    {
        public string name { get; set; }

        public abstract void EatFood();//吃東西
        public abstract void Study();//學習
    }


    public class StudentClassOne: StudentBase
    {
        public override void EatFood()
        {
            System.Diagnostics.Debug.WriteLine($"{name} 開始吃東西了");
            System.Diagnostics.Debug.WriteLine($"吃西瓜");
        }
        public override void Study()
        {
            System.Diagnostics.Debug.WriteLine($"{name} 開始學習了");
        }
    }

對其進行代理,代理類如下:

    public  class StudentProxy: StudentBase
    {
        private StudentBase studentBase = new StudentClassOne();
        public override void EatFood()
        {
            //寫日誌,如:記錄請求參數、記錄代碼執行開始時間、讀取緩存
            studentBase.EatFood();
            //寫日誌,如:記錄響應參數、記錄代碼執行結束時間、緩存響應參數
        }
        public override void Study()
        {
            studentBase.Study();
        }
    }

 

發佈了68 篇原創文章 · 獲贊 28 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章