zoukankan      html  css  js  c++  java
  • 设计模式学习笔记——代理模式(Proxy)

    1.特点:通过代理访问真实对象。

    2.概念:为其它对象提供一种代理以控制对这个对象的访问。

    3.类图:

    4.程序实现:

    /// <summary>
        /// 抽象实体,定义真实实体与代理的公共接口
        /// </summary>
        public interface ISubject
        {
            void Function1();
            void Function2();
        }
    /// <summary>
        /// 真实实体,真正的功能实现者
        /// </summary>
        public class RealSubject:ISubject
        {
    
            public void Function1()
            {
                Console.WriteLine("This is the first function.");
            }
    
            public void Function2()
            {
                Console.WriteLine("This is the second function.");
            }
        }
    /// <summary>
        /// 代理,用来访问真实的实体
        /// </summary>
        public class Proxy : ISubject
        {
            /// <summary>
            /// 保存一个真实实体,用以在代理中访问真实实体的功能。
            /// </summary>
            private RealSubject realSubject;
    
            public Proxy()
            {
                realSubject = new RealSubject();
            }
    
            /// <summary>
            /// 实现与Subject相同的接口,实际调用的是RealSubject的Function1()
            /// </summary>
            public void Function1()
            {
                realSubject.Function1();
            }
    
            /// <summary>
            /// 实现与Subject相同的接口,实际调用的是RealSubject的Function2()
            /// </summary>
            public void Function2()
            {
                realSubject.Function2();
            }
        }
    class Program
        {
            static void Main(string[] args)
            {
                // 实例化代理
                ISubject subjectProxy = new Proxy();
    
                // 通过代理调用具体功能
                subjectProxy.Function1();
                subjectProxy.Function2();
    
                Console.Read();
            }
        }
    

      

  • 相关阅读:
    Django模型层之ORM
    bzoj1037 [ZJOI2008]生日聚会
    bzoj4423 [AMPPZ2013]Bytehattan
    bzoj1018 [SHOI2008]堵塞的交通
    关于弦图一些问题的解法
    bzoj1006 [HNOI2008]神奇的国度
    bzoj2561 最小生成树
    bzoj3720 Gty的妹子树
    bzoj3489 A simple rmq problem
    bzoj4066 简单题
  • 原文地址:https://www.cnblogs.com/ice-baili/p/4729154.html
Copyright © 2011-2022 走看看