• 【设计模式】 代理模式


    【设计模式】 代理模式

     一. 代理模式

     1. 对现有对象进行封装,以控制对该对象的访问

     2. 适用场景 :

      a. 做对外的接口, 有了代理可以起到过滤作用,只代理想公开的功能,不像公开的功能就不做代理

      b. 增加安全性, 可以在代理层加上安全验证

     3. 代码 

        public class Proxy
        {
            public static void Test()
            {
                var proxyer = new Proxyer();
                var v = new ImProxy(proxyer);
                v.DoProxy();
            }
        }
    
        internal class ImProxy : ProxyBase
        {
            public ImProxy(ProxyBase proxy)
            {
                this._proxy = proxy;
            }
    
            private readonly ProxyBase _proxy;
            public override void DoProxy()
            {
                if (_proxy != null)
                {
                    _proxy.DoProxy();
                }
            }
        }
    
        internal class Proxyer : ProxyBase
        {
            public override void DoProxy()
            {
                Console.WriteLine("我是被代理者");
            }
        }
    
        internal abstract class ProxyBase
        {
            public abstract void DoProxy();
        }
  • 相关阅读:
    CF1037H
    CF1296F
    CF1446F
    CF1175G
    CF1146G
    CF1303G
    CF1067D
    CF1477E
    COJ16G
    ZJOI2018 迷宫
  • 原文地址:https://www.cnblogs.com/fzz2727551894/p/4203704.html
Copyright © 2020-2023  润新知