学习笔录——大话设计模式——代理模式

学习笔录——设计模式

代理模式(Proxy)

简介

为其他对象提供一种代理以控制 对这个对象的访问

代码示例


    /*
    *定义代理和被代理的公用接口,或者抽象方法
    *这样就在任何使用被代理的地方使用 代理
    */
    public abstract class Subject
    {
        public abstract void Request();
    }

    // 被代理(真实主题)
    public class RealSubject : Subject
    {
        public override void Request()
        {
            System.Console.WriteLine("真实的请求");
        }
    }

    // 代理 保存一个代理的引用,对外让客户端引用自身
    public class Proxyer : Subject
    {
        private RealSubject subject;
        public override void Request()
        {
            if(subject is null)
                subject = new RealSubject();

            System.Console.WriteLine($"我是代理人proxy,subject向你说:");
            subject.Request();
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            // 实例化一个代理
            Proxyer proxyer = new Proxyer();
            
            // 调用代理
            proxyer.Request();
            Console.Read();
        }
    }

个人理解,不足之处还请指教。

代理模式通过一个代理(proxy)隐藏其真实的实体,也可以理解为真实的实体想通知客户端但是不想让客户端知道他,所以通过代理来让代理来通知。

原文地址:https://www.cnblogs.com/caiyangcc/p/13033823.html