策略模式

策略模式是模板模式的扩展。

我们使用这种模式是为了避免如果我们将模板继承模式带到其逻辑结论时将需要重复:

对于策略模式,我们遵循依赖注入的原理。

我们从每日报告的测试文件开始:

然后,我们继续文件本身:

注意,write_report方法现在如何仅引用格式化程序实例变量。 现在可以使用HTMLFormatter或CSVFormatter实例化WriteReport类。 然后,我们编写HTMLFormatter测试:

继续模拟我们要创建的html文件:

然后,我们创建文件本身:

我们的下一个挑战是创建CSVFormatter,我们从CSVFormatter规范开始:

我们还检查CSV文件中的条目:

最后,我们创建CSVFormatter模块:

我们检查所有测试是否通过:

到了! 策略模式:较小规模模板模式的可扩展改进。