代理模式
1、个人理解:被代理类与代理类同时要实现相同的接口或抽象类,在代理类中保留对被代理类的引用,实现抽象类的方法时对被代理类的方法进行调用,初始化代理类的时候要传入的参数是被代理类,当我们调用代理类的方法时实际上执被代理类的方法,也就实现了代理模式。
2、专业解释:为其他对象提供一种代理以控制对这个对象的访问。
3、代码:
1)抽象类,供代理类和被代理类去继承
1 abstract class Subject 2 { 3 public abstract void Request(); 4 }
2)被代理类,继承抽象类,重写Request方法
1 class RealSubject:Subject 2 { 3 4 public override void Request() 5 { 6 Console.WriteLine("我是真实的请求!"); 7 } 8 }
3)代理类,继承抽象类,重写Request方法,将被代理类作为自己的一个字段
1 class Proxy : Subject 2 { 3 RealSubject rs; 4 public override void Request() 5 { 6 rs.Request(); 7 } 8 Proxy(RealSubject rs) { 9 this.rs = rs; 10 } 11 }
4)客户端代码
public static void Main() { RealSubject rs = new RealSubject(); Proxy px = new Proxy(rs); px.Request(); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!