Sobes.tech
Junior — Middle

¿Qué métodos se pueden utilizar para implementar la inyección de dependencias en el código?

sobes.tech AI

Respuesta de la IA

La inyección de dependencias (Dependency Injection, DI) en Go se puede implementar de varias maneras, considerando las características del lenguaje:

  1. A través de parámetros de funciones o constructores — la forma más común y sencilla. Las dependencias se pasan explícitamente al crear un objeto o al llamar a una función.
type Service struct {
    repo Repository
}

func NewService(r Repository) *Service {
    return &Service{repo: r}
}
  1. Uso de interfaces — permite reemplazar fácilmente las implementaciones de dependencias para pruebas o extensiones.

  2. Paquetes para DI — existen bibliotecas de terceros (por ejemplo, Uber Fx, Google Wire) que ayudan a automatizar la inyección de dependencias, aunque su uso no es obligatorio.

  3. Variables globales o singletons — método menos preferido debido a problemas con la testabilidad y el mantenimiento.

En Go, generalmente se prefiere la inyección explícita a través de parámetros, lo que mejora la legibilidad y la simplicidad del código.