dotSITE
Шаблоны проектирования Work in Murano Software. Вопросы/Ответы
новости материалы решения форумы группы настройки/о проекте

Proxy

Proxy - предоставляет объект, контролирующий доступ к данному, перехватывая все вызовы к нему.

        namespace Proxy_DesignPattern
        {
            using System;
            using System.Threading;

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

            class ActualSubject : CommonSubject
            {
                public ActualSubject()
                {
                    Console.WriteLine("Starting to construct ActualSubject");       
                    Thread.Sleep(1000); // Мощные вычисления
                    Console.WriteLine("Finished constructing ActualSubject");
                }
                    
                    override public void Request()
                {
                    Console.WriteLine("Executing request in ActualSubject");
                }
            }

            class Proxy : CommonSubject
            {
                ActualSubject actualSubject;

                override public void Request()
                {
                    if (actualSubject == null)
                        actualSubject = new ActualSubject();
                    actualSubject.Request();
                }   
                
            }
            
            public class Client
            {
                public static int Main(string[] args)
                {
                    Proxy p = new Proxy();


                    if (1==1)       // При некотором условии выполняется запрос
                        p.Request();
                                        
                    return 0;
                }
            }
        }
        

Back
Контакт Реклама на сайте Спонсорам Веб мастерам

Лицензионное соглашение - © 2000-2010 dotSITE
Хостинг .NET предоставлен PARKING.RU
Поддержку сайта осуществляет Murano Software Inc., Offshore software development