代理模式是一种常见的设计模式,它可以为其他对象提供一种代理以控制对这个对象的访问。代理对象可以在客户端和目标对象之间起到中间人的作用,可以起到隐藏目标对象的功能、保护目标对象的安全等作用。
以下是一个使用代理模式的 C# 示例代码:
首先,我们定义一个接口 ISubject,表示一个被代理对象的接口:
代码语言:javascript复制public interface ISubject
{
void Request();
}
然后,我们定义一个具体的被代理类 RealSubject,实现 ISubject 接口:
代码语言:javascript复制public class RealSubject : ISubject
{
public void Request()
{
Console.WriteLine("RealSubject handles the request.");
}
}
然后,我们定义一个代理类 Proxy,也实现 ISubject 接口:
代码语言:javascript复制public class Proxy : ISubject
{
private RealSubject realSubject;
public void Request()
{
// 在调用 RealSubject 的 Request 方法之前可以进行一些额外的操作
if (realSubject == null)
{
realSubject = new RealSubject();
}
realSubject.Request();
// 在调用 RealSubject 的 Request 方法之后可以进行一些额外的操作
}
}
最后,我们可以在客户端代码中使用代理类 Proxy 来调用 RealSubject 的 Request 方法,示例代码如下:
代码语言:javascript复制ISubject subject = new Proxy();
subject.Request();
这样,就实现了使用代理模式来控制对 RealSubject 对象的访问。在 Proxy 类中,我们可以控制 RealSubject 对象的创建和销毁,并可以在调用 RealSubject 的方法前后进行额外的操作。