当前位置: 首页> 教育> 大学 > 设计模式-策略模式

设计模式-策略模式

时间:2025/8/18 23:20:48来源:https://blog.csdn.net/qq_25699299/article/details/140847963 浏览次数:0次

以下是一个简单的策略模式的C#实现示例。我们定义了一个IStrategy接口,以及实现了这个接口的两个类ConcreteStrategyAConcreteStrategyBContext类使用了策略模式来根据需要动态地改变算法或行为。

// 策略接口
interface IStrategy
{void Execute();
}// 策略A的实现
class ConcreteStrategyA : IStrategy
{public void Execute(){Console.WriteLine("策略A执行。");}
}// 策略B的实现
class ConcreteStrategyB : IStrategy
{public void Execute(){Console.WriteLine("策略B执行。");}
}// 环境类
class Context
{private IStrategy _strategy;public Context(IStrategy strategy){this._strategy = strategy;}public void ExecuteStrategy(){_strategy.Execute();}
}// 客户端代码
class Program
{static void Main(string[] args){// 使用策略AContext contextA = new Context(new ConcreteStrategyA());contextA.ExecuteStrategy();// 使用策略BContext contextB = new Context(new ConcreteStrategyB());contextB.ExecuteStrategy();Console.Read();}
}

在这个例子中,Context类是一个包装器,它接受一个实现了IStrategy接口的对象,并将所有工作委托给这个对象。客户端代码可以根据需要选择不同的策略对象来创建Context类的实例。这样,算法或行为可以在运行时动态地更改,而不改变Context类的接口。

关键字:设计模式-策略模式

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: