策略模式

Posted by KANG's BLOG on Tuesday, March 15, 2022

概念

策略模式定义了算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户

组成

抽象策略角色: 策略类,通常由一个接口或者抽象类实现

具体策略角色:包装了相关的算法和行为。

环境角色:持有一个策略类的引用,最终给客户端调用。

例子

比如,不同鸟类可能会飞,可能不会为,可能呱呱叫,可能吱吱叫。

所以我们可以定义鸟类这个父类有飞行行为、叫声行为。

不同鸟类,可以通过使用不同的行为类,分别实现不同的飞行、叫声。