设计模式--代理模式

2023-06-25 18:35:21 浏览数 (1)

代理模式是一种常见的设计模式,它可以为其他对象提供一种代理以控制对这个对象的访问。代理对象可以在客户端和目标对象之间起到中间人的作用,可以起到隐藏目标对象的功能、保护目标对象的安全等作用。

以下是一个使用代理模式的 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 的方法前后进行额外的操作。

0 人点赞