[img]/upload/attachment/121818/2e873342-351a-3e41-8f64-ab9563a8f4f6.png[/img]
上图是根据《Head First》系列的《设计模式》书中的鸭子案例画的策略模式图。
策略模式定义:定义算法族,封装起来。可以相互替换。让算法的变换独立于使用算法的客户。
设计原则:封装变化。
在鸭子的例子中。首先是抽象了一个Duck类。然后发现其中的fly和quack是容易变化的,并且于是将其独立出来。并且实现。
优势:1.定义了可重用的算法。
2.简化单元测试。(每个算法都有自己的类,可通过接口测试)
应用场合:
只要发现可能在不同的条件下会使用不同的方法。就可以将其独立出来。
上图是根据《Head First》系列的《设计模式》书中的鸭子案例画的策略模式图。
策略模式定义:定义算法族,封装起来。可以相互替换。让算法的变换独立于使用算法的客户。
设计原则:封装变化。
在鸭子的例子中。首先是抽象了一个Duck类。然后发现其中的fly和quack是容易变化的,并且于是将其独立出来。并且实现。
优势:1.定义了可重用的算法。
2.简化单元测试。(每个算法都有自己的类,可通过接口测试)
应用场合:
只要发现可能在不同的条件下会使用不同的方法。就可以将其独立出来。