设计模式五(代理模式)

首先说明代理模式的作用范围

1.远程代理

2.虚拟代理:当一个对象的创建比较消耗资源的时候,我们可以建立一个代理类,用缓存的机制

    来保存这个对象的实例,然后用代理类的方法调用这个实例的方法,让外面看上去是在调用实例

     本身一样。

3.安全代理,用来控制真实对象访问时的权限

4.智能指引:也就是在调用对象的方法的时候在做一些额外的其他信息,比如真实对象的引用次数,

  或者判断对象是否已经被锁定等一系列的额外操作

 

其次图解

 

 

最后代码展示

 

    class Program
    {
        static void Main(string[] args)
        {
            Proxy proxy = new Proxy();
            proxy.Request();

            Console.Read();
        }
    }

    abstract class Subject
    {
        public abstract void Request();
    }

    class RealSubject : Subject
    {
        public override void Request()
        {
            Console.WriteLine("真实的请求");
        }
    }

    class Proxy : Subject
    {
        RealSubject realSubject;
        public override void Request()
        {
            if (realSubject == null)
            {
                realSubject = new RealSubject();
            }

            realSubject.Request();
        }
    }

 

posted @ 2010-11-24 23:34  yu_liantao  阅读(146)  评论(0)    收藏  举报