Пример #1
0
        // Наиболее распространёнными областями применения паттерна
        // Заместитель являются ленивая загрузка, кэширование, контроль доступа,
        // ведение журнала и т.д. Заместитель может выполнить одну из этих
        // задач, а затем, в зависимости от результата, передать выполнение
        // одноимённому методу в связанном объекте класса Реального Субъект.
        public void Request()
        {
            Console.WriteLine("Проверка до вызова");
            if (CheckAccess())
            {
                _realSubject = new RealSubject();
                _realSubject.Request();

                Console.WriteLine("Проверка после вызова");
                LogAccess();
            }
        }
Пример #2
0
        static void Main(string[] args)
        {
            Client client = new Client();

            Console.WriteLine("Client: Executing the client code with a real subject:");
            RealSubject realSubject = new RealSubject();

            client.ClientCode(realSubject);

            Console.WriteLine();

            Console.WriteLine("Client: Executing the same client code with a proxy:");
            Proxy proxy = new Proxy(realSubject);

            client.ClientCode(proxy);
        }
Пример #3
0
 public Proxy(RealSubject realSubject)
 {
     _realSubject = realSubject;
 }