Код IT
← Каталог

Рекомендации по разработке на Go — Инверсия зависимостей

Фрагмент из «Рекомендации по разработке на Go»: Инверсия зависимостей.

Go main.go
// Абстракция в доменном пакете
package user

type Repository interface {
    FindByID(id string) (*User, error)
    Save(u *User) error
}

type Service struct {
    repo Repository
}

func NewService(repo Repository) *Service {
    return &Service{repo: repo}
}
// Абстракция в доменном пакете
package user

type Repository interface {
    FindByID(id string) (*User, error)
    Save(u *User) error
}

type Service struct {
    repo Repository
}

func NewService(repo Repository) *Service {
    return &Service{repo: repo}
}