【发布时间】:2012-11-18 17:59:38
【问题描述】:
一般风格问题。
随着我越来越擅长编写函数式代码,我的更多方法正在变成纯函数。我发现我的许多“类”(在代码容器的松散意义上)正在变得无状态。因此我将它们设为对象而不是类,因为不需要实例化它们。
现在在 Java 世界中,拥有一个充满“静态”方法的类似乎很奇怪,并且通常只用于“帮助”类,就像您在 Guava 和 Commons-* 等中看到的那样。
所以我的问题是,在 Scala 世界中,“对象”内部有很多逻辑,而不是“类”,这很正常,还是有另一个首选的成语。
【问题讨论】:
-
等等,如果它们是无状态的,为什么它们甚至是对象而不是简单的函数?
-
你不需要把函数放在里面,这是我的问题。我有一堆相关的功能,它们在一个对象中,只是作为一个容器。这是否被认为是 Scala 中的最佳实践。
-
哦,好的。我误解了。谢谢你的澄清。
-
在功能世界中,我们称这些容器模块。 Miranda 这样做了,F# 继续这样做。 “一般风格问题”可能是 Scala 的创建者希望他们的容器成为对象的原因。
-
啊,模块是一流的值:2013.flatmap.no/spiewak.html
标签: scala functional-programming