码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-03-14 15:13:28      阅读:146      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!