首页 > 其他 > 详细

大话设计模式-代理模式(7)

时间:2016-03-14 15:11:34      阅读:199      评论:0      收藏:0      [点我收藏+]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ProxyFactory
{
    interface IGiveGift
    {
        void GiveDolls();
        void GiveFlowers();
        void GvieChoolate();
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ProxyFactory
{
    class Proxy:IGiveGift
    {
        Pursuit gg;

        public Proxy(SchoolGirl mm)
        {
            gg = new Pursuit(mm);
        }

        public void GiveDolls()
        {
            gg.GiveDolls();
        }

        public void GiveFlowers()
        {
            gg.GiveFlowers();
        }

        public void GvieChoolate()
        {
            gg.GvieChoolate();
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ProxyFactory
{
    abstract class Subject
    {
        public abstract void Request();
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ProxyFactory
{
    class Pursuit:IGiveGift
    {
        SchoolGirl mm;

        public Pursuit(SchoolGirl mm) 
        {
            this.mm = mm;
        }

        public void GiveDolls()
        {
            Console.WriteLine("{0}送你洋娃娃!",mm.Name);
        }

        public void GiveFlowers()
        {
            Console.WriteLine("{0}送你鲜花!",mm.Name);
        }

        public void GvieChoolate()
        {
            Console.WriteLine("{0}送你巧克力!",mm.Name);
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ProxyFactory
{
    class RealSubject:Subject
    {
        public override void Request()
        {
            Console.WriteLine("真实的请求!");
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ProxyFactory
{
    class SubProxy:Subject
    {
        RealSubject realSubject;

        public override void Request()
        {
            if (realSubject == null)
            {
                realSubject = new RealSubject();
            }
            realSubject.Request();
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ProxyFactory
{
    class SchoolGirl
    {
        private string name;

        public string Name
        {
            get { return name; }
            set { name = value; }
        }

    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ProxyFactory
{
    class Program
    {
        static void Main(string[] args)
        {
            SchoolGirl mm = new SchoolGirl();
            mm.Name = "李娇娇";

            Proxy daili = new Proxy(mm);
            daili.GiveDolls();
            daili.GiveFlowers();
            daili.GvieChoolate();


            SubProxy subProxy = new SubProxy();
            subProxy.Request();

            Console.ReadLine();
        }
    }
}

 代理模式

  代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问.

 

大话设计模式-代理模式(7)

原文:http://www.cnblogs.com/rinack/p/5275758.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!