概念
策略模式定义了算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户
组成
抽象策略角色: 策略类,通常由一个接口或者抽象类实现
具体策略角色:包装了相关的算法和行为。
环境角色:持有一个策略类的引用,最终给客户端调用。
例子
比如,不同鸟类可能会飞,可能不会为,可能呱呱叫,可能吱吱叫。
所以我们可以定义鸟类这个父类有飞行行为、叫声行为。
不同鸟类,可以通过使用不同的行为类,分别实现不同的飞行、叫声。
策略模式定义了算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户
抽象策略角色: 策略类,通常由一个接口或者抽象类实现
具体策略角色:包装了相关的算法和行为。
环境角色:持有一个策略类的引用,最终给客户端调用。
比如,不同鸟类可能会飞,可能不会为,可能呱呱叫,可能吱吱叫。
所以我们可以定义鸟类这个父类有飞行行为、叫声行为。
不同鸟类,可以通过使用不同的行为类,分别实现不同的飞行、叫声。