标签: scala singleton traits
以下哪种方式更好/首选?他们有什么不同?
trait MyService { def foo: String } class MyTest { // variant 1 object fooService1 extends MyService { val foo = "foo1" } // variant 2 val fooService2 = new MyService { val foo = "foo2" } // (...) }
答案 0 :(得分:2)
没有实际区别,除非您延长MyTest,否则您将能够覆盖val但不能覆盖object,[编辑],并且该对象会被懒惰地实例化。
MyTest
val
object
此外,可能重复this。