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

    代理模式:为其它对象提供了一种代理,以控制对这个对象的访问

    代理在客户端和实际实体之间增加了一层处理,主要有下列几种使用场合
    1 远程代理,为一个对象在不同的地址空间提供局部代表,隐藏了一个对象存在于不同地址空间的事实,如Web引用
    2 虚拟代理,根据需要创建开销很大的对象,通过它来存放实例化需要很长时间的真实对象,从而优化性能,如浏览器
    3 安全代理,用来控制真实对象访问时的权限
    4 智能引用,当调用真实对象时,代理处理另外一些事,如自动释放,持久化对象,加锁等

    最简单的代理模式例子如下:

        /// <summary>
        /// 定义实体和代理都需要实现的接口
        /// </summary>
        public interface ISubject
        {
            void Request();
        }
    
        /// <summary>
        /// 定义实际的实体
        /// </summary>
        public class RealSubject : ISubject
        {
            public void Request()
            {
                Console.WriteLine("Real Request");
            }
        }
    
        /// <summary>
        /// 定义代理,其中保存一个实体的引用,在调用代理方法时执行实际实体的方法
        /// </summary>
        public class Proxy : ISubject
        {
            ISubject subject;
    
            public Proxy()
            {
                subject = new RealSubject();
            }
    
            public void Request()
            {
                subject.Request();
            }
        }
    

      客户端通过调用代理,调用实际对象的方法:

     Proxy proxy = new Proxy();
     proxy.Request();
  • 相关阅读:
    Java 内部类理解
    Java 抽象类和接口的理解
    Java String 和 new String()的区别
    Java 基本类型和对象类型的区别
    Java对象与对象引用变量的理解
    bash: crontab: command not found
    Linux下压缩某个文件夹命令
    爬虫实战项目二、字体反爬
    Pandas学习之四:修改增加
    Pandas库学习之三:处理元素
  • 原文地址:https://www.cnblogs.com/angela217/p/5395459.html
Copyright © 2011-2022 走看看