Нужна клёвая книга о паттернах на русском? Вот она »
Одиночка

Одиночка на Go

Одиночка — это порождающий паттерн, который гарантирует существование только одного объекта определённого класса, а также позволяет достучаться до этого объекта из любого места программы.

Одиночка имеет такие же преимущества и недостатки, что и глобальные переменные. Его невероятно удобно использовать, но он нарушает модульность вашего кода.

Вы не сможете просто взять и использовать класс, зависящий от одиночки в другой программе. Для этого придётся эмулировать присутствие одиночки и там. Чаще всего эта проблема проявляется при написании юнит-тестов.

По материалам: Golang By Example

Одиночка на других языках программирования

Одиночка на Java Одиночка на C# Одиночка на C++ Одиночка на PHP Одиночка на Python Одиночка на Ruby Одиночка на Swift Одиночка на TypeScript