Skip to content

策略(Strategy)模式 行为型模式

更新: 2023-05-24 11:11:27   字数: 0 字   时长: 0 分钟

定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的改变不会影响使用算法的客户。

c#
// 策略模式示例
using System;

// 定义一个接口,用于定义策略模式中的算法
public interface IStrategy
{
    void Execute();
}

// 定义一个具体的算法实现类
public class ConcreteStrategyA : IStrategy
{
    public void Execute()
    {
        Console.WriteLine("执行策略A");
    }
}

// 定义另一个具体的算法实现类
public class ConcreteStrategyB : IStrategy
{
    public void Execute()
    {
        Console.WriteLine("执行策略B");
    }
}

// 定义一个上下文类,用于管理策略的使用
public class Context
{
    private IStrategy _strategy;

    // 构造函数,传入具体的策略实现类
    public Context(IStrategy strategy)
    {
        this._strategy = strategy;
    }

    // 执行策略
    public void ExecuteStrategy()
    {
        _strategy.Execute();
    }
}

class Program
{
    static void Main(string[] args)
    {
        // 创建具体的策略实现类
        IStrategy strategyA = new ConcreteStrategyA();
        IStrategy strategyB = new ConcreteStrategyB();

        // 创建上下文对象,并传入具体的策略实现类
        Context context = new Context(strategyA);

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

        // 切换策略为B
        context = new Context(strategyB);

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

        Console.ReadKey();
    }
}
你觉得这篇文章怎么样?
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
评论
  • 按正序
  • 按倒序
  • 按热度