1. 程式人生 > >Scala單例物件Object簡介

Scala單例物件Object簡介

Scala單例物件Object

Scala沒有單例靜態屬性的說法,不過提供了單例物件object。
單獨的object並不能算是型別定義(從抽象層面來說)
Object是無參的(不通過new 關鍵字來建立沒有機會來傳參)
Scala的單例物件不能簡單的只通過一個object實現。最好是用半生類來實現。因為單獨的object在spark叢集模式提交的時候容易出錯(spark叢集模式提交,如果在driver中執行了object的初始化或者屬性的更改,在excuter中可能會因為這些屬性更改沒有生效而造成資料不一致的問題。)
Apply方法:apply方法可以說是有兩種一種是在半生物件中的apply方法,另一種是半生類的apply方法。Apply方法是一種常用的類似於類的初始化的方法。無須使用new關鍵字可以直接Array()呼叫。在巢狀資料結構中使用非常方便。
Class A{def apply()}
Object A{def apply()}

呼叫方法 A():呼叫的是半生物件的apply
Val a = A() a():這個呼叫的是半生類的apply