Синглтон (Singleton) это порождающий паттерн проектирования ограничивающий создание экземпляра типа одним объектом.
Реализация
package singleton
type singleton map[string]string
var (
once sync.Once
instance singleton
)
func New() singleton {
once.Do(func() {
instance = make(singleton)
})
return instance
}
Использование
s := singleton.New()
s["this"] = "that"
s2 := singleton.New()
fmt.Println("This is ", s2["this"])
// This is that
Паттерн Синглтон представляет глобальное состояние и в большинстве случаев снижает пригодность кода к тестированию.
Читайте также:
- Паттерны в Golang: функциональные опции
- Паттерны в Golang: Builder (Строитель)
- Паттерны в Golang: Factory Method (Фабричный метод)
Комментариев нет:
Отправить комментарий