免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
大話設(shè)計-代理模式

記錄大話設(shè)計學(xué)習(xí)過程。

代理模式:代理者為其他對象提供代理,以控制對真實對象的訪問。

用戶調(diào)用代理者,代理者通過真實的對象引用讓對象去做事情。但是代理者可以附加一些功能,然后才讓真實對象去做事情。

代理模式運用案例:WebService生成代理訪問服務(wù),虛擬代理、安全代理(控制真實對象訪問時的權(quán)限)、智能引用。

using System;

namespace ConsoleApp4
{
    class Program
    {
        public static void Main(string[] args)
        {
            var girl = new SchoolGirl("鄧紫棋");
            Proxy proxy = new Proxy(girl);
            proxy.GiveFlowers();
            proxy.GiveChocolate();
            proxy.GiveDolls();
        }
    }

    interface GiveGift
    {
        void GiveDolls();
        void GiveFlowers();
        void GiveChocolate();
    }

    class Pursuit : GiveGift
    {
        SchoolGirl girl;
        public Pursuit(SchoolGirl girl)
        {
            this.girl=girl;
        }

        public void GiveChocolate()
        {
            Console.WriteLine("送巧克力");
        }

        public void GiveDolls()
        {
            Console.WriteLine("送洋娃娃");
        }

        public void GiveFlowers()
        {
            Console.WriteLine("送花");
        }
    }

    class Proxy : GiveGift
    {
        Pursuit Pursuit;
        public Proxy(SchoolGirl girl)
        {
            Pursuit = new Pursuit(girl);
        }

        public void GiveChocolate()
        {
            this.Pursuit.GiveChocolate();
        }

        public void GiveDolls()
        {
            this.Pursuit.GiveDolls();
        }

        public void GiveFlowers()
        {
            this.Pursuit.GiveFlowers();
        }
    }

    internal class SchoolGirl
    {
        public string Name { get; set; }
        public SchoolGirl(string name)
        {
            this.Name = name;
        }
    }
}
View Code
using System;

namespace ConsoleApp4
{
    class Program
    {
        public static void Main(string[] args)
        {
            Proxy proxy = new Proxy();
            proxy.Request();
        }
    }

    abstract class Subject
    {
        public abstract void Request();
    }

    class RealSubject : Subject
    {
        public override void Request()
        {
            Console.WriteLine("真實對象在請求");
        }
    }

    class Proxy : Subject
    {
        RealSubject realSubject;

        public Proxy()
        {
            this.realSubject = new RealSubject();
        }

        public override void Request()
        {
            // 寫一堆附加功能代碼.....
            realSubject.Request();
        }
    }
    
}
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
大話設(shè)計模式筆記(五)の代理模式
代理模式
深入理解設(shè)計模式(23):代理模式
設(shè)計模式讀書筆記-----代理模式
Java動態(tài)代理機制詳解(JDK 和CGLIB,Javassist,ASM) (清晰,淺顯)
設(shè)計模式
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服