scala學習筆記 單例

2021-07-22 02:51:55 字數 1082 閱讀 9321

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...