设计模式-代理模式

代理模式是常用的设计模式之一,其目的是为其他对象提供一个代理以控制对这个对象的访问。在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方法时,代理会在调用实际对象之前和之后执行一些操作。这是一个简单的代理模式示例。

相关推荐
乐悠小码13 小时前
Java设计模式精讲---02抽象工厂模式
java·设计模式·抽象工厂模式
乙己40720 小时前
设计模式——原型模式(prototype)
设计模式·原型模式
⑩-20 小时前
浅学Java-设计模式
java·开发语言·设计模式
攻心的子乐20 小时前
软考 关于23种设计模式
java·开发语言·设计模式
成钰1 天前
设计模式之单例模式:一个类就只有一个实例
单例模式·设计模式
o0向阳而生0o1 天前
110、23种设计模式之状态模式(19/23)
设计模式·状态模式
_院长大人_1 天前
设计模式-单例模式
单例模式·设计模式
崎岖Qiu1 天前
【设计模式笔记17】:单例模式1-模式分析
java·笔记·单例模式·设计模式
安冬的码畜日常2 天前
【JUnit实战3_27】第十六章:用 JUnit 测试 Spring 应用:通过实战案例深入理解 IoC 原理
spring·观察者模式·设计模式·单元测试·ioc·依赖注入·junit5
她说彩礼65万2 天前
C#设计模式 单例模式实现方式
单例模式·设计模式·c#