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

    代理模式包含的角色:
    1.定义抽象类,被代理类和真实实现类共同实现,使得任何使用真实对象的地方都可以用代理类Proxy替代。
    2.真实实现类:定义代理类所代表的实现类
    3.代理类:保存一个引用 使得代理可以访问实体并提供一个与抽象类的接口相同的接口,使得代理 以用来替代实体
    抽象类:
    /// <summary>
        /// 定义 Proxy与AbstractClass类的公共方法 
        /// </summary>
        public abstract class AbstractClass
        {
            public abstract void SendMessage();
        }
    具体实现类:
     
     /// <summary>
        /// 实际执处理请类
        /// </summary>
        class RealClass:AbstractClass
        {
            public override void SendMessage()
            {
                Console.WriteLine("小良哥通过代理发送的消息");
            }
        }
    代理类:
     /// <summary>
        /// 代理类 
        /// </summary>
        class Proxy : AbstractClass
        {
            private RealClass realClass;
    
            public override void SendMessage()
            {
                if (realClass == null)
                    realClass = new RealClass();
    
                realClass.SendMessage();
            }
        }
    客户端调用:
        /// <summary>
        /// 客户端类 将请求发给代理类(Proxy)
        /// </summary>
        class Program
        {
            static void Main(string[] args)
            {
                Proxy proxy = new Proxy();
                proxy.SendMessage();
    
                Console.Read();
            }
        }

    总结:各种设计模式的最终目的都是为了解耦,提高重用,封装变化,用代码去实现这么多的设计模式无非就是抽象类 接口 继承,此处的代理模式就用到了继承和抽象,以后有时间再写其他设计模式的实现

  • 相关阅读:
    2.替换空格
    1.二维数组的查找
    poj 2431 expedition
    python入门第三天
    python入门第二天__练习题
    [Python3.6] print vs sys.stdout.write
    python入门第二天
    使用Flask-mail发送邮件无法连接主机
    KMP
    逆序对 线段树&树状数组 (重制版)
  • 原文地址:https://www.cnblogs.com/xiaoliangge/p/6077125.html
Copyright © 2011-2022 走看看