我希望将Scala中的许多无状态对象组合在一起,形成一个API,如下所示:

object tools {
   // List all methods in toolA

   // List all methods in toolB

   // List all methods in toolC

}
object ToolA { ... }
object ToolB { ... }
object ToolC { ... }

显然,在tools中维护列表很烦人,因为ToolAToolBToolC中的方法正在发生很大变化。 A / B / C中没有状态,没有设置参数。

有什么方法可以说...“使tools包含ToolAToolBToolC中的所有方法的集合”?

最佳答案

将工具A,B和C定义为特征

trait ToolA {
    //stateless methods in ToolA
}

那你可以做
object tools extends ToolA with ToolB with ToolC

您还可以仅对ToolA,ToolB和ToolC使用帮助对象。
object toolA extends ToolA
object toolB extends ToolB
object toolC extends ToolC

09-06 02:18