Dan*_*ton 7 functional-programming dependency-injection
在编写面向对象的软件时,我经常使用依赖注入:
从较低级别的功能组合高级功能:我的帐户管理服务使用存储库和验证服务,而不是自己实现它们.
将组件与其依赖关系隔离开来:我的帐户管理服务通过接口使用其依赖关系,以便我可以交换实现,模拟单元测试等等.
函数式编程语言中存在哪些模式来实现这些目标?
编辑:一位评论者正确地问:"只是传递圆形函数怎么样?".我认为以下关于函数分组的注释会触及头部 - 服务是一组函数,具有一组共享的依赖关系,我可以将其作为一个原子组来处理.
在Clojure中,似乎协议很好地解决了这个问题,但我真的很想知道问题如何得到更广泛的解决......
在小规模上,柯里化和函数即参数之类的东西减少了对模块依赖性的需求。在更大的范围内,像标准机器学习函子这样的东西对于这个目的非常有用。Racket 有一个称为units 的系统,在这方面也做得很好。
| 归档时间: |
|
| 查看次数: |
1744 次 |
| 最近记录: |