代理模式
代理模式包含的角色:
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(); } }
总结:各种设计模式的最终目的都是为了解耦,提高重用,封装变化,用代码去实现这么多的设计模式无非就是抽象类 接口 继承,此处的代理模式就用到了继承和抽象,以后有时间再写其他设计模式的实现

作者:Chaunce
GitHub:https://github.com/liuyl1992
公众号请搜:架构师高级俱乐部 SmartLife_com

声明:原创博客请在转载时保留原文链接或者在文章开头加上本人博客地址,如发现错误,欢迎批评指正。凡是转载于本人的文章,不能设置打赏功能等盈利行为
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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编程运行原理