介绍:
原理:
优点:
缺点:
代码示例
using System;
// 策略接口
interface IStrategy
{
void Execute();
}
// 具体策略类A
class ConcreteStrategyA : IStrategy
{
public void Execute()
{
Console.WriteLine("Executing strategy A");
}
}
// 具体策略类B
class ConcreteStrategyB : IStrategy
{
public void Execute()
{
Console.WriteLine("Executing strategy B");
}
}
// 上下文类
class Context
{
private IStrategy _strategy;
public Context(IStrategy strategy)
{
_strategy = strategy;
}
public void SetStrategy(IStrategy strategy)
{
_strategy = strategy;
}
public void ExecuteStrategy()
{
_strategy.Execute();
}
}
class Program
{
static void Main(string[] args)
{
// 创建上下文对象
Context context = new Context(new ConcreteStrategyA());
// 执行策略A
context.ExecuteStrategy();
// 切换到策略B
context.SetStrategy(new ConcreteStrategyB());
// 执行策略B
context.ExecuteStrategy();
}
}