zoukankan      html  css  js  c++  java
  • C#设计模式--代理模式(学习Learning hard 设计模式笔记)

     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("帮我买个苹果手机和苹果电脑");
            }
        }
    
    
    
        //代理主题角色
        public class Friend : Person
        {
            //引用真实主题实例
            RealBuyPerson RealSubject;
            public override void BuyProduct()
            {
                Console.WriteLine("通过代理类访问真实实体对象的方法");
                if (RealSubject == null)
                {
                    RealSubject = new RealBuyPerson();
                }
    
    
                //调用真实的主题方法
                RealSubject.BuyProduct();
                this.PreBuyProduct();
                this.PostProduct();
    
            }
    
    
            //代理角色执行一些操作
            public void PreBuyProduct()
            {
                //买东西,列个清单,买的东西比较多
                Console.WriteLine("我怕弄糊涂了,需要列一张清单,张三:手机,李四:要带电脑...........");
                Console.WriteLine("买手机...........");
                Console.WriteLine("买电脑...........");
                Console.WriteLine("...........");
            }
    
            //买完东西后 开始给朋友分发
            public void PostProduct()
            {
                Console.WriteLine("买完了。。开始分东西,张三 手机,李四 电脑…………");
            }
        }

    优点:

    1. 代理模式能够将调用用于真正被调用的对象隔离,在一定程度上降低了系统的耦合度;
    2. 代理对象在客户端和目标对象之间起到一个中介的作用,这样可以起到对目标对象的保护。代理对象可以在对目标对象发出请求之前进行一个额外的操作,例如权限检查等。

    缺点:

    1.  由于在客户端和真实主题之间增加了一个代理对象,所以会造成请求的处理速度变慢
    2. 实现代理类也需要额外的工作,从而增加了系统的实现复杂度。

    原文地址http://www.cnblogs.com/zhili/p/ProxyPattern.html

  • 相关阅读:
    Nginx简单认识
    Redis简单入门认识
    用户体验报告——脉脉
    zine结构图
    猫眼电影原型图
    关于共享单车的一点思考
    用户体验报告——网易严选
    Zine和石墨文档竞品分析
    用户体验报告——石墨文档
    集合框架2
  • 原文地址:https://www.cnblogs.com/zyfadmin/p/8463747.html
Copyright © 2011-2022 走看看