我在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
,ToolA
和ToolB
中的方法发生了很大变化,因此在ToolC
中维护列表很烦人。 A / B / C中没有状态且没有设置参数。
有什么方法可以说... “make tools
包含ToolA
,ToolB
和ToolC
中所有方法的集合” ?
答案 0 :(得分:6)
将ToolA,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