Что такое constructor injection?

Middle
179 просмотров
AFK Offer AI

Constructor injection — передача зависимостей через конструктор (New-функцию). Например: func NewOrderService(repo OrderRepo, pay PaymentClient) *OrderService. Все зависимости видны в сигнатуре, их нельзя забыть передать (в отличие от setter injection). В Go это основной паттерн — просто и работает. Если конструктор принимает больше 5-6 аргументов, пора декомпозировать сервис.

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

Что не так: resp, err := http.Get(url); if err != nil { log.Fatal(err) }; body, _ := io.ReadAll(resp.Body)?