scala 中沒有 static 關鍵字,但是它也為我們提供了單例模式的實現方法,那就是使用關鍵字 object。
scala 中使用單例模式時,除了定義的類之外,還要定義乙個同名的 object 物件,它和類的區別是,object物件不能帶引數。
當單例物件與某個類共享同乙個名稱時,他被稱作是這個類的伴生物件:companion object。你必須在同乙個原始檔裡定義類和它的伴生物件。類被稱為是這個單例物件的伴生類:companion class。類和它的伴生物件可以互相訪問其私有成員
class
singledemo
var x = 0
}object
singledemo
def run()
var num= 0
def numincr()
}class
testsingle
object
testsingle
extends
val single1 = singledemo //呼叫object singledemo 單例
val single2 = singledemo //呼叫object singledemo 單例
val instance = singledemo() //呼叫class singledemo 非單例
println(single1)
println(single2)
var i = 0
for(i <- 1 to 20)
singledemo.staticfun() //靜態呼叫
single1.staticfun()
println(singledemo.num)
}
輸出結果
com
.czt
.test
.singledemo$@74a14482
com.czt
.test
.singledemo$@74a14482
靜態方法20
靜態方法20
20
scala單例模式
package cn.tedu.objectx object singleton object a 餓漢式 class b private object b 抽象類package cn.tedu.objectx object abstractdemo package abst abstract cl...
Scala實現單例模式
單例模式是一種常用的軟體設計模式。在它的核心結構中只包含乙個被稱為單例的特殊類。通過單例模式可以保證系統中乙個類只有乙個例項。對於系統中的某些類來說,只有乙個例項很重要,例如,在scala中是沒有static這個東西的,但是我們可以使用object來實現 scala中使用單例模式時,除了定義的類之外...
scala學習筆記09 樣例類
樣例類 樣例類使用了case關鍵字的類定義就是就是樣例類 case classes 樣例類是種特殊的類,經過優化以用於模式匹配。object case class01 定義函式分辨職務 def classify p person unit 定義父類 person class person 定義doc...