在Scala中对实用程序功能进行分组的首选方法?

时间:2011-04-23 11:00:28

标签: scala code-organization

对不属于某个类的实用程序函数进行分组的最佳方法是什么?在Ruby中,我会将它们分组在一个模块中。我应该在Scala中使用traits来获得相同的效果还是对象?

3 个答案:

答案 0 :(得分:13)

通常,我将在语义上不同的实用函数放入不同的特征中,并为每个特征创建一个对象,例如

trait Foo {
  def bar = 1
}
object Foo extends Foo

这样我最灵活。我可以通过import语句或类声明中的with导入实用程序函数。此外,我可以轻松地将不同的实用程序特征组合到一个新对象中,以简化最常用的实用程序函数的import语句,例如

object AllMyUtilites extends Foo with Foo2

答案 1 :(得分:7)

打包对象或只是普通对象。

例如,请参阅Scala.Predefscala.math

答案 2 :(得分:2)

如果您希望将它们与将要使用它的类混合使用,则为特征。对象,如果您只想导入它们。