Что такое паттерн Factory?

Junior
1.2k просмотров
AFK Offer AI

Factory — паттерн создания объектов, скрывающий детали инициализации. В Go это обычная функция-конструктор, начинающаяся с New.

type Storage interface {
    Save(data []byte) error
}

func NewStorage(storageType string) Storage { switch storageType { case "s3": return &S3Storage{bucket: "my-bucket"} case "local": return &LocalStorage{path: "/data"} default: return &LocalStorage{path: "/tmp"} } }

В Go нет классов и конструкторов, поэтому функции New* — стандартный подход. Возвращай интерфейс, а не конкретный тип — это даёт гибкость и упрощает тестирование. Фабрика полезна когда создание объекта сложное или зависит от конфигурации.

Следующий вопрос

UUID vs serial — что выбрать?