cie*_*bor 1 scala object composition
我想用两个对象制作一个合成.我可以用对象嵌套来做到这一点:
object Composition {
object SomePartOfComposition {
// some body
}
}
Run Code Online (Sandbox Code Playgroud)
但是SomePartOfComposition的主体是如此之长,我希望它在一个单独的文件中.我怎样才能做到这一点?
//编辑
我知道,我可以使用特质.但我想要严格的一对一关系 - 它是一个单身人士.
object Composition {
object SomePartOfComposition extends SomePartTrait
}
trait SomePartTrait{
//in it's own file
//implement the body here
}
Run Code Online (Sandbox Code Playgroud)
你还没有说明为什么一个对象嵌套在另一个对象中很重要,所以我假设你只是希望语法看起来像A.B.所以:
//File A
object A {
val B = C
}
// File C
object C {
import A._
// All your code, written just like it was placed inside A
}
Run Code Online (Sandbox Code Playgroud)
如果这不是您想要的,请编辑问题以解释所有标准.
通过将特征的自我类型定义为对象的类型,您可以在使用特征时具有严格的一对一关系:
object Composition {
object SomePartOfComposition extends SomePartOfCompositionTrait
}
trait SomePartOfCompositionTrait {
this: Composition.SomePartOfComposition.type =>
// body
}
Run Code Online (Sandbox Code Playgroud)