Golang は、効率的で強力かつ簡潔なオープンソースの静的型付けプログラミング言語です。 Golang では、シングルトン パターンは、クラスがインスタンスを 1 つだけ持ち、グローバル アクセス ポイントを提供するようにするために一般的に使用される設計パターンです。シングルトン パターンは多くのシナリオで役割を果たすことができます。以下では、Golang でシングルトン パターンを適用するのに適したいくつかのシナリオを紹介し、具体的なコード例を添付します。
package database import ( "database/sql" "sync" _ "github.com/go-sql-driver/mysql" ) var db *sql.DB var once sync.Once func GetDB() *sql.DB { once.Do(func() { var err error db, err = sql.Open("mysql", "username:password@tcp(127.0.0.1:3306)/dbname") if err != nil { panic(err) } }) return db }
package config import ( "github.com/spf13/viper" "sync" ) type Config struct { DatabaseUsername string DatabasePassword string } var instance *Config var once sync.Once func GetConfig() *Config { once.Do(func() { viper.SetConfigFile("config.yaml") viper.ReadInConfig() instance = &Config{ DatabaseUsername: viper.GetString("database.username"), DatabasePassword: viper.GetString("database.password"), } }) return instance }
package logger import ( "log" "sync" ) type Logger struct { } var instance *Logger var once sync.Once func GetLogger() *Logger { once.Do(func() { instance = &Logger{} }) return instance } func (l *Logger) Log(message string) { log.Println(message) }
上記は、Golang でシングルトン モードを適用するのに適したいくつかのシナリオと具体的なコード例です。実際の開発では、プロジェクトのニーズに応じて柔軟に適用できます。モードにより、コードの再利用性とパフォーマンスが向上します。
以上がGolangにおけるシングルトンパターンの適用シナリオは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。