设计模式-代理模式

代理模式是常用的设计模式之一,其目的是为其他对象提供一个代理以控制对这个对象的访问。在C#中,代理模式可以通过使用委托和事件来实现。

以下是一个简单的代理模式的C#示例:

cs 复制代码
// 定义一个抽象的Subject接口
public interface ISubject
{
    void DoAction();
}
 
// 实现Subject接口的具体实现
public class RealSubject : ISubject
{
    public void DoAction()
    {
        Console.WriteLine("RealSubject is doing something.");
    }
}
 
// 定义一个保存具体实现的对象引用的代理类
public class Proxy : ISubject
{
    private ISubject _realSubject;
 
    public Proxy(ISubject realSubject)
    {
        this._realSubject = realSubject;
    }
 
    public void DoAction()
    {
        Console.WriteLine("Proxy: Doing something before.");
        _realSubject.DoAction(); // 调用实际对象的方法
        Console.WriteLine("Proxy: Doing something after.");
    }
}
 
// 使用代理
public class Program
{
    public static void Main(string[] args)
    {
        ISubject realSubject = new RealSubject();
        ISubject proxy = new Proxy(realSubject);
        
        proxy.DoAction();
    }
}

在这个例子中,ISubject是一个定义了操作的接口,RealSubject是实现了该接口的具体类,而Proxy是代理类,它包含了对RealSubject的引用。当客户端通过代理调用DoAction方法时,代理会在调用实际对象之前和之后执行一些操作。这是一个简单的代理模式示例。

相关推荐
炎芯随笔9 小时前
【C++】【设计模式】生产者-消费者模型
开发语言·c++·设计模式
workflower17 小时前
使用谱聚类将相似度矩阵分为2类
人工智能·深度学习·算法·机器学习·设计模式·软件工程·软件需求
枣伊吕波19 小时前
第六节第二部分:抽象类的应用-模板方法设计模式
android·java·设计模式
lalajh20 小时前
论软件设计模式及其应用
设计模式
lgily-12251 天前
常用的设计模式详解
java·后端·python·设计模式
Auc242 天前
OJ判题系统第4期之判题机模块架构——设计思路、实现步骤、代码实现(工厂模式、代理模式的实践)
java·spring cloud·log4j·mybatis·代理模式·工厂模式
周努力.2 天前
设计模式之中介者模式
设计模式·中介者模式
yangyang_z2 天前
【C++设计模式之Template Method Pattern】
设计模式
源远流长jerry2 天前
常用设计模式
设计模式
z26373056112 天前
六大设计模式--OCP(开闭原则):构建可扩展软件的基石
设计模式·开闭原则