2727551894

导航

 

【设计模式】 代理模式

 一. 代理模式

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

 

posted on 2015-01-05 15:25  xmj112288  阅读(128)  评论(0编辑  收藏  举报