策略模式
定义
在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。
在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。
类图
Strategy(策略)
负责决定实现策略锁必需的接口
ConcreteStrategy(具体的策略)
负责实现Strategy的接口,即负责实现具体的策略
Context(上下文)
负责使用Strategy。Context保存了ConcreteStrategy的实例,并使用ConcreteStrategy去实现需求
示例
类图
Hand
1 | public class Hand { |
Strategy
1 | public interface Strategy { |
WinningStrategy
1 | public class WinningStrategy implements Strategy { |
ProbStrategy
1 | public class ProbStrategy implements Strategy { |
Player
1 | public class Player { |
Main
1 | public class Main { |