zoukankan      html  css  js  c++  java
  • 代理模式

    // 客户端调用
        class Client
        {
            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()
            {
                Console.WriteLine("通过代理类访问真实实体对象的方法");
                if (realSubject == null)
                {
                    realSubject = new RealBuyPerson();
                }
    
                this.PreBuyProduct();
                // 调用真实主题方法
                realSubject.BuyProduct();
                this.PostBuyProduct();
            }
    
            // 代理角色执行的一些操作
            public void PreBuyProduct()
            {
                // 可能不知一个朋友叫这位朋友带东西,首先这位出国的朋友要对每一位朋友要带的东西列一个清单等
                Console.WriteLine("我怕弄糊涂了,需要列一张清单,张三:要带相机,李四:要带Iphone...........");
            }
            
            // 买完东西之后,代理角色需要针对每位朋友需要的对买来的东西进行分类
            public void PostBuyProduct()
            {
                Console.WriteLine("终于买完了,现在要对东西分一下,相机是张三的;Iphone是李四的..........");
            }
        }
  • 相关阅读:
    4. Median of Two Sorted Arrays
    3. Longest Substring Without Repeating Characters
    695. Max Area of Island
    2015 Benelux Algorithm Programming Contest E-Excellent Engineers
    URAL
    Codeforces Round #309 (Div. 2) -D. Kyoya and Permutation
    Codeforces Round #144 (Div. 2) D table
    Codeforces Round #429 (Div. 2)
    Codeforces 610D Vika and Segments
    Codeforces 757D
  • 原文地址:https://www.cnblogs.com/gaocong/p/6869029.html
Copyright © 2011-2022 走看看