Junior — Middle
Questa domanda riguarda la tua esperienza nell'implementazione e nell'uso del pattern Dependency Injection. Potresti raccontarci se hai incontrato questo approccio nei tuoi progetti?
sobes.tech AI
Risposta dell'AI
Sì, nei miei progetti in Python ho utilizzato il pattern Dependency Injection (DI) per migliorare la modularità e la testabilità del codice. DI permette di passare le dipendenze di un oggetto dall'esterno, anziché crearle internamente, facilitando la sostituzione dei componenti e semplificando la scrittura di test.
Ad esempio, invece di creare un'istanza del servizio all'interno della classe, la passo tramite il costruttore:
class EmailService:
def send_email(self, to, subject, body):
pass # Implementazione dell'invio email
class UserRegistration:
def __init__(self, email_service):
self.email_service = email_service
def register(self, user):
# Logica di registrazione
self.email_service.send_email(user.email, "Welcome", "Grazie per la registrazione")
# Utilizzo
email_service = EmailService()
registration = UserRegistration(email_service)
registration.register(user)
In progetti più complessi, ho utilizzato librerie per DI, come injector o dependency-injector, che aiutano a gestire le dipendenze in modo centralizzato e automatico.