單例模式是一種常用的軟體設計模式。在它的核心結構中只包含乙個被稱為單例的特殊類。
通過單例模式可以保證系統中乙個類只有乙個例項。
對於系統中的某些類來說,只有乙個例項很重要,例如,
在scala中是沒有static這個東西的,但是我們可以使用object來實現;
scala中使用單例模式時,除了定義的類之外,還要定義乙個同名的object物件,它和類的區別是,object物件不能帶引數。
當單例物件與某個類共享同乙個名稱時,它被稱作是這個類的伴生物件:companion object。你必須在同乙個原始檔裡定義類和他的伴生物件。
類被稱為這個單例物件的伴生類:companion class。
類和他的伴生物件可以互相訪問其私有成員。
這裡定義了乙個單例物件:乙個有且僅有乙個例項的類。object語句在定義了乙個marker類的同時,也定義了乙個marker的例項。
這個例項在第一次使用的時候會進行例項化。
object marker
def main(args: array[string]): unit =
}class marker private(var color:string)
}
scala單例模式
package cn.tedu.objectx object singleton object a 餓漢式 class b private object b 抽象類package cn.tedu.objectx object abstractdemo package abst abstract cl...
單例模式實現
單例模式 singleton 保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。1 適用於單執行緒 class singleton public static singleton getinstance return instance 註解 singleton的靜態屬性instance中,只有...
單例模式實現
推薦的單例實現方法 餓漢模式 1種 public class singleton public static singleton getinstance 雙重檢查 volatile關鍵字必須加 public class singleton public static singleton getins...