Golang ialah bahasa pengaturcaraan taip statik sumber terbuka yang cekap, berkuasa dan ringkas. Di Golang, corak tunggal ialah corak reka bentuk yang biasa digunakan untuk memastikan kelas hanya mempunyai satu tika dan menyediakan titik akses global. Corak tunggal boleh memainkan peranan dalam banyak senario Berikut akan memperkenalkan beberapa senario yang sesuai untuk menggunakan corak tunggal dalam Golang, dan melampirkan contoh kod tertentu.
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) }
Di atas adalah beberapa senario dan contoh kod khusus yang sesuai untuk menggunakan mod tunggal dalam Golang Dalam pembangunan sebenar, anda boleh menggunakan mod tunggal secara fleksibel mengikut keperluan projek dan menambah baik kod. kebolehgunaan semula dan prestasi.
Atas ialah kandungan terperinci Apakah senario aplikasi corak tunggal di Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!