WEB开发网
开发学院软件开发C语言 C# Design Patterns (4) - Proxy 阅读

C# Design Patterns (4) - Proxy

 2009-07-06 07:07:20 来源:WEB开发网   
核心提示: Proxy Pattern (代理模式)The Proxy Pattern provides a surrogate or placeholder for another object to control access to it... - Design Patterns: Elements of Reu

Proxy Pattern (代理模式)

The Proxy Pattern provides a surrogate or placeholder for another object to control access to it...

- Design Patterns: Elements of Reusable Object-Oriented Software

在 GoF 的书中,对 Proxy 模式的定义为:替某个对象,提供一个替身,以控制外界对这个对象的访问。而这个被替身代理的对象 (被代理者),可能是远端的对象、创建时需要高成本或大计算量的对象,或需要安全控制的对象。

C# Design Patterns (4) - Proxy

图 1 此图为 Proxy 模式的经典类图

01_Shell / Program.cs
using System;

namespace _01_Shell
{
    //用户端程序
    class Program
    {
        static void Main(string[] args)
        {
            //用户把 Proxy (代理者) 视为 RealSubject (真实的对象) 来操作
            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();
        }
    }
}


/*
 执行结果:
 
真实的请求

 */

1 2 3 4 5 6  下一页

Tags:Design Patterns Proxy

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接