La parola "dipendenza" è stata utilizzata correttamente in DI?

1

La parola "dipendenza" è molto usata nella programmazione. Ma penso che potremmo usarlo in modo sbagliato in molti modi. Userò "Dependency Injection" in questo post come esempio. Secondo il Dictionary.com, "Dipendenza" significa:

  1. the state of being dependent; dependence.
  2. something dependent or subordinate; appurtenance.
  3. an outbuilding or annex.
  4. a subject territory that is not an integral part of the ruling country.

Prendiamo il secondo significato. La dipendenza denota una cosa che dipende da un'altra cosa. Tuttavia, quando diciamo "Dependency Injection", quali dipendenze non sono gli oggetti che richiedono l'iniezione di altri oggetti a se stessi, ma gli oggetti che vengono iniettati. Ma secondo il significato dato nel dizionario, questa comprensione è sbagliata. In realtà, non stiamo iniettando dipendenze, ma le dipendenze richiedono che altri oggetti vengano iniettati poiché dipendono da quegli oggetti che specificano nei loro costruttori. Forse un nome come "dipendenza da richiesta" sarebbe accurato.

Una giustificazione sarebbe che chiamiamo gli oggetti iniettati "Dipendenze" perché fanno parte di un grafico di dipendenza in cui dipendono dagli altri oggetti, ma dal punto di vista più realistico, questa giustificazione del modo in cui la parola " dipendenza "è usato nel modello DI non mi sembra sufficiente.

Non sono un madrelingua inglese. Pertanto, potrei sbagliarmi su questo argomento. Ma ogni volta che penso alla dipendenza, il significato di esso nel dizionario e il modo in cui viene utilizzato nella programmazione sono in conflitto tra loro.

    
posta Tarik 15.08.2016 - 04:50
fonte

1 risposta

7

Iniezione di dipendenza utilizza correttamente il termine "dipendenza".

Una dipendenza è semplicemente un'impostazione, un valore o una configurazione da cui dipende un programma. Cercare dipendente è molto più istruttivo. Ci si trova (leggermente parafrasando e abbreviato, e tra gli altri significati):

  1. fare affidamento su qualcuno o qualcos'altro
  2. condizionato o determinato da qualcos'altro; contingente
  3. subordinato; Oggetto
  4. non usato in isolamento; usato solo in connessione con altri moduli
  5. aventi valori determinati da una o più variabili indipendenti

Quelli tutti si adattano perfettamente all'iniezione di dipendenza.

In DI, i valori e le configurazioni di cui un programma dipende sono forniti esternamente ("iniettato"). In pratica, il server delle applicazioni, il programma di caricamento, il cablaggio di test o altri "middleware" responsabili dell'iniezione forniscono non solo valori semplici (ad esempio "il file da elaborare è xyz.jpg " o "il programma deve utilizzare 6 thread di lavoro per questa esecuzione "), ma anche i nomi o gli indirizzi dei servizi (ad es. database, parser, librerie) che il programma dovrebbe utilizzare e le credenziali e le configurazioni con cui utilizzare tali servizi. Sia che si tratti di valori semplici o di definizioni di servizi e oggetti complessi, le informazioni iniettate invariabilmente specificano le cose da cui dipende il programma di destinazione e che lo sviluppatore ha ritenuto opportuno definire esternamente piuttosto che cablato nel codice sorgente del programma.

È vero che la "dipendenza" di DI non è compatibile con ogni possibile significato di "dipendenza". I significati "allegato" e "territorio subordinato", per esempio, sono assenti. Ma questo è un aspetto del corso nell'uso delle lingue naturali nelle impostazioni tecniche. Né una frase come "sistema operativo" si allinea con ogni possibile significato o senso ( denotazione o connotation ) di "operativo".

    
risposta data 15.08.2016 - 08:56
fonte