C# 设计模式系列教程:策略模式详解

需积分: 0 0 下载量 56 浏览量 更新于2024-09-03 收藏 100KB PDF 举报
C# 设计模式系列教程-策略模式 策略模式是一种定义一系列算法的方法,从概念上来看,所有算法完成的都是相同的工作,只是实现不同,它可以以相同的方式调用所有的算法,减少了各种算法类与使用算法类之间的耦合。 策略模式的定义: 策略模式定义了一系列算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化不会影响到使用算法的客户端。 模式中的角色: * 策略类(Stratege):定义所有支持的算法的公共接口。 * 具体策略类(ConcreteStratege):封装了具体的算法或行为,继承于Stratege类。 * 上下文类(Context):用一个ConcreteStratege来配置,维护一个对Stratege对象的引用。 策略模式的优点: * 策略模式可以减少各种算法类与使用算法类之间的耦合。 * 策略模式可以让算法的变化不会影响到使用算法的客户端。 策略模式的应用场景: * 在日常生活中,策略模式可以应用于选择不同方式来达到相同的目的,例如从机场到XXX酒店的方法。 * 在软件开发中,策略模式可以应用于选择不同算法来解决问题,例如WCF的授权扩展。 策略模式的实现: * 策略模式可以通过抽象类或接口来定义公共接口。 * 具体策略类可以继承于策略类,实现具体的算法或行为。 * 上下文类可以维护一个对策略对象的引用,选择使用哪个策略。 策略模式的例子: * 从机场到XXX酒店的方法,可以选择酒店接机服务、打车过去、机场快轨+地铁、机场巴士、公交车、走路过去等等。 * WCF的授权扩展,可以通过自定义授权来扩展WCF,例如通过自定义AuthorizationPolicy和ServiceAuthorizationManager来实现对它的扩展。 策略模式是一种定义一系列算法的方法,可以减少各种算法类与使用算法类之间的耦合,让算法的变化不会影响到使用算法的客户端。