您的位置:首页 >Golang中单例模式的常见应用领域是什么?
发布于2025-01-19 阅读(0)
扫一扫,手机访问
Golang是一种开源的静态类型编程语言,具有高效、强大和简洁的特点。在Golang中,单例模式是一种常用的设计模式,用于确保一个类只有一个实例,并提供一个全局访问点。单例模式在很多场景下都可以发挥作用,下面将介绍一些适合在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中应用单例模式的场景以及具体的代码示例,大家在实际开发中可以根据项目需求灵活应用单例模式,提高代码的复用性和性能。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
9