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

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

  • 相关阅读:
    springmvc源码分析上之HandlerMapping
    java web api接口调用
    centos6 hadoop2.7.3分布式搭建
    大话java基础知识一之为什么java的主函数入口必须是public static void
    jQuery引用
    windows 服务的卸载
    java 环境安装
    python matplotlib 折线图的制作
    python matplotlib 简单柱状图的制作
    python 安装库时 Failed building wheel for 错误处理
  • 原文地址:https://www.cnblogs.com/xiaoliangge/p/6077125.html
Copyright © 2011-2022 走看看