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();
            }
        }

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

  • 相关阅读:
    suseoj 1211: 子集和问题 (dfs)
    suseoj 1210: 会场安排问题 (贪心)
    suseoj 1209: 独立任务最优调度问题(动态规划)
    四级词汇(二)
    四级单词(一)
    nyoj 84-阶乘的0 (规律题)
    nyoj 83-迷宫寻宝(二) (计算几何, 叉积)
    nyoj 82-迷宫寻宝(一) (多重BFS)
    nyoj 79-拦截导弹 (动态规划)
    nyoj 78-圈水池 (凸包)
  • 原文地址:https://www.cnblogs.com/xiaoliangge/p/6077125.html
Copyright © 2011-2022 走看看