Composition over inheritance в Go.

Ответ

В Go нет наследования; композиция через встраивание структур (embedding) и интерфейсы. Поведение переиспользуют, включая типы в структуру и вызывая их методы; при необходимости переопределяют методы. Предпочитают маленькие интерфейсы и композицию больших типов из маленьких. Не эмулировать иерархии классов; использовать интерфейсы и внедрение зависимостей.

type Handler struct {
    Logger  Logger
    Metrics Metrics
}
func (h *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
    h.Logger.Info("request")
    h.next.ServeHTTP(w, r)
}
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.