2016-03-08 88 views
0

以下哪種方法更好/首選?他們有什麼不同?object vs val for singletons?

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" 
} 
// (...) 
} 

回答

2

沒有實際的區別,不同之處在於,如果你擴展MyTest,你將能夠覆蓋val但不是object,[編輯]和對象實例化懶洋洋地。

此外,可能重複this