Go的单例模式

 保证一个 struct 只有一个实例,并提供一个全局访问点

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package manager

import (
"sync"
"fmt"
)

var m *Manager
var once sync.Once

type Manager struct{}

func SharedManager() *Manager {
once.Do(func() {
m = &Manager{}
})
return m
}

func (p *Manager) Manage() {
fmt.Println("manage...")
}
你的支持将鼓励我继续创作!