This repository has been archived on 2021-09-07. You can view files and clone it, but cannot push or open issues or pull requests.
2018-09-27 18:09:18 +08:00

36 lines
614 B
Go

package main
import "fmt"
/*
* 单例模式之懒汉模式
* 非线程安全
*/
// 首先构造一个结构体
type example struct {
name string
}
// 设置一个变量作为单例变量,这是一个私有变量,包外不可访问
var instance *example
// 写一个方法用来返回单例
func GetExample() *example {
// 存在线程安全问题,高并发时有可能创建多个对象
if instance == nil {
instance = new(example)
}
return instance
}
func main() {
s := GetExample()
s.name = "第一次赋值单例模式"
fmt.Println(s.name)
s2 := GetExample()
fmt.Println(s2.name)
}