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

13.代理模式(Proxy Pattern)

时间:2015-07-13 06:23:53      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:

using System;

namespace ConsoleApplication6
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建一个代理对象并发出请求            
            Person proxy = new Friend();            
            proxy.BuyProduct();            
            Console.Read();
        }
    }

    // 抽象主题角色
    public abstract class Person
    {
        public abstract void BuyProduct();
    }

    //真实买家
    public class RealBuyPerson : Person
    {
        public override void BuyProduct()
        {
            Console.WriteLine("真实买家买一个IPhone和一台苹果电脑");
        }
    }

    // 代理角色
    public class Friend : Person
    {
        RealBuyPerson realSubject;

        public override void BuyProduct()
        {      
            if (realSubject == null)
            {
                realSubject = new RealBuyPerson();
            }

            realSubject.BuyProduct();
            Console.WriteLine("调用代理类叫朋友去买");
            this.PreBuyProduct();     
            this.PostBuyProduct();
        }

        public void PreBuyProduct()
        {
            Console.WriteLine("朋友去买一个IPhone和一台苹果电脑");      
        }

        public void PostBuyProduct()
        {
            Console.WriteLine("朋友去把IPhone和一台苹果电脑交给真实买家");
        }
    }

 
}

 

13.代理模式(Proxy Pattern)

标签:

原文地址:http://www.cnblogs.com/lgxlsm/p/4641875.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!