среда, 9 октября 2019 г.

Паттерны в Golang: Синглтон (Singleton)

Синглтон (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

Паттерн Синглтон представляет глобальное состояние и в большинстве случаев снижает пригодность кода к тестированию.


Читайте также:


Комментариев нет:

Отправить комментарий