策略(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();
}
}