策略模式
策略模式是模板模式的扩展。
我们使用这种模式是为了避免如果我们将模板继承模式带到其逻辑结论时将需要重复:
对于策略模式,我们遵循依赖注入的原理。
我们从每日报告的测试文件开始:
然后,我们继续文件本身:
注意,write_report方法现在如何仅引用格式化程序实例变量。 现在可以使用HTMLFormatter或CSVFormatter实例化WriteReport类。 然后,我们编写HTMLFormatter测试:
继续模拟我们要创建的html文件:
然后,我们创建文件本身:
我们的下一个挑战是创建CSVFormatter,我们从CSVFormatter规范开始:
我们还检查CSV文件中的条目:
最后,我们创建CSVFormatter模块:
我们检查所有测试是否通过:
到了! 策略模式:较小规模模板模式的可扩展改进。
- iOS10 iMessage:无法使用MSConversation将数据插入到iMessage中
- 如何更改Swift中UISearchBar上“取消”button的颜色
- 在Swift中使用imagePickerController在同一视图控制器中select两个不同的图像
- Swift 4中的重大更改
- 依赖注入:Swift
- 列表与固定标题反弹效果,如App Store
- 用self.navigationController.hidesBarsOnSwipe = true隐藏导航栏,永久隐藏它
- UITests中的模拟网络请求
- 优步无效的OAuth 2.0凭据提供Uber身份validation在iOS Swift中