代理模式

代理模式包含的角色:
1.定义抽象类,被代理类和真实实现类共同实现,使得任何使用真实对象的地方都可以用代理类Proxy替代。
2.真实实现类:定义代理类所代表的实现类
3.代理类:保存一个引用 使得代理可以访问实体并提供一个与抽象类的接口相同的接口,使得代理 以用来替代实体
抽象类:
/// <summary>
    /// 定义 Proxy与AbstractClass类的公共方法 
    /// </summary>
    public abstract class AbstractClass
    {
        public abstract void SendMessage();
    }

 

具体实现类:
 
复制代码
 /// <summary>
    /// 实际执处理请类
    /// </summary>
    class RealClass:AbstractClass
    {
        public override void SendMessage()
        {
            Console.WriteLine("小良哥通过代理发送的消息");
        }
    }
复制代码

 

代理类:
复制代码
 /// <summary>
    /// 代理类 
    /// </summary>
    class Proxy : AbstractClass
    {
        private RealClass realClass;

        public override void SendMessage()
        {
            if (realClass == null)
                realClass = new RealClass();

            realClass.SendMessage();
        }
    }
复制代码
客户端调用:
复制代码
    /// <summary>
    /// 客户端类 将请求发给代理类(Proxy)
    /// </summary>
    class Program
    {
        static void Main(string[] args)
        {
            Proxy proxy = new Proxy();
            proxy.SendMessage();

            Console.Read();
        }
    }
复制代码

 

总结:各种设计模式的最终目的都是为了解耦,提高重用,封装变化,用代码去实现这么多的设计模式无非就是抽象类 接口 继承,此处的代理模式就用到了继承和抽象,以后有时间再写其他设计模式的实现

posted @   Leon_Chaunce  阅读(269)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理

喜欢请打赏

扫描二维码打赏

了解更多

点击右上角即可分享
微信分享提示