策略模式(别名:政策)
定义一系列算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。
Strategy Pattern(Another Name: Policy)
Define a family of algorithms, encapsulate each one, and make them inter changeable. Strategy lets the algorithm vary independently from clients that use it.
类图

模式的结构与使用
策略方法模式的结构中包括三种角色。
+ 策略(Strategy):策略是一个接口,该接口定义若干个算法标识,即定义了若干个抽象方法。
+ 具体策略(Concrete Strategy):具体策略是实现策略接口的类。具体策略实现策略接口所定义的抽象方法,即给出算法标识的具体算法。
+ 上下文(Context):上下文是依赖于策略接口的类,即上下文包含有策略声明的变量。上下文中提供一个方法,该方法委托策略变量调用具体策略所实现的策略接口中的方法。

本文详细介绍了Java设计模式中的策略模式,包括模式的定义、结构、使用方式以及优点。通过具体的例子展示了如何创建抽象策略接口`ComputableStrategy.java`以及三个实现策略的类`StrategyOne.java`、`StrategyTwo.java`、`StrategyThree.java`,并在`GymnasticsGame.java`上下文类中应用。此外,还讨论了策略模式适用于避免大量条件语句的情况以及需要使用算法变体的场景。
订阅专栏 解锁全文
490

被折叠的 条评论
为什么被折叠?



