如何用c#实现策略模式
时间: 2023-07-18 13:09:17 浏览: 96
策略模式是一种行为型设计模式,它定义了一系列算法,将每个算法封装起来,并使它们可以相互替换。这使得算法可以独立于使用它们的客户端而变化。在 C# 中,实现策略模式的步骤如下:
1. 定义一个策略接口,该接口定义了一个或多个算法方法,例如:
```csharp
public interface IStrategy
{
void ExecuteAlgorithm();
}
```
2. 实现策略接口,实现算法方法,例如:
```csharp
public class ConcreteStrategyA : IStrategy
{
public void ExecuteAlgorithm()
{
Console.WriteLine("Executing algorithm A");
}
}
public class ConcreteStrategyB : IStrategy
{
public void ExecuteAlgorithm()
{
Console.WriteLine("Executing algorithm B");
}
}
```
3. 定义一个使用策略的客户端类,该类包含一个策略成员变量,例如:
```csharp
public class Context
{
private IStrategy _strategy;
public Context(IStrategy strategy)
{
_strategy = strategy;
}
public void ExecuteAlgorithm()
{
_strategy.ExecuteAlgorithm();
}
}
```
4. 在客户端代码中使用策略模式,例如:
```csharp
var contextA = new Context(new ConcreteStrategyA());
var contextB = new Context(new ConcreteStrategyB());
contextA.ExecuteAlgorithm(); // 输出 "Executing algorithm A"
contextB.ExecuteAlgorithm(); // 输出 "Executing algorithm B"
```
以上就是用 C# 实现策略模式的基本步骤。在实际应用中,你可以根据具体的业务需求和场景进行调整和扩展。
阅读全文