溫馨提示×

go語言單例模式怎么實現

小億
103
2023-11-22 05:56:29
欄目: 編程語言

在Go語言中,可以通過以下兩種方式實現單例模式:

  1. 懶漢模式(Lazy Initialization):
type singleton struct {
    // 單例對象的屬性
}

var instance *singleton

// 獲取單例對象的方法
func GetInstance() *singleton {
    if instance == nil {
        instance = &singleton{}
    }
    return instance
}

這種方式在第一次調用GetInstance()方法時才會創建單例對象,之后再次調用時直接返回已創建的對象。

  1. 餓漢模式(Eager Initialization):
type singleton struct {
    // 單例對象的屬性
}

var instance *singleton = &singleton{}

// 獲取單例對象的方法
func GetInstance() *singleton {
    return instance
}

這種方式在程序啟動時就會創建單例對象,并且保證了在多線程環境下只會創建一個實例。

以上兩種方式都是基于Go語言的包級別變量和包級別函數來實現的,保證了單例對象的唯一性和全局可訪問性。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女