策略模式是一种行为型设计模式,它允许在运行时选择算法的行为。在策略模式中,算法被封装在独立的策略类中,客户端可以在不改变其代码的情况下选择不同的策略。

下面是一个简单的 C# 实现策略模式的示例:

// 策略接口
interface IStrategy
{
    void Execute();
}

// 具体策略类
class ConcreteStrategyA : IStrategy
{
    public void Execute()
    {
        Console.WriteLine('Executing ConcreteStrategyA');
    }
}

class ConcreteStrategyB : IStrategy
{
    public void Execute()
    {
        Console.WriteLine('Executing ConcreteStrategyB');
    }
}

// 策略上下文
class Context
{
    private IStrategy _strategy;

    public Context(IStrategy strategy)
    {
        _strategy = strategy;
    }

    public void SetStrategy(IStrategy strategy)
    {
        _strategy = strategy;
    }

    public void ExecuteStrategy()
    {
        _strategy.Execute();
    }
}

// 客户端代码
class Client
{
    static void Main(string[] args)
    {
        // 创建策略上下文并设置策略
        var context = new Context(new ConcreteStrategyA());

        // 执行策略
        context.ExecuteStrategy();

        // 切换策略并再次执行
        context.SetStrategy(new ConcreteStrategyB());
        context.ExecuteStrategy();
    }
}

在上面的示例中,我们定义了一个 'IStrategy' 接口和两个具体的策略类 'ConcreteStrategyA' 和 'ConcreteStrategyB'。然后我们定义了一个 'Context' 类,它包含一个 'IStrategy' 类型的成员变量 '_strategy',并且有一个 'ExecuteStrategy' 方法,用于执行当前的策略。

最后,在客户端代码中,我们创建一个 'Context' 对象并设置一个初始策略,然后执行策略。接着,我们切换策略并再次执行。

C# 策略模式实现:灵活选择算法

原文地址: https://www.cveoy.top/t/topic/lZR5 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录