Dino Geek, cerca di aiutarti

Come eseguire l'iniezione di dipendenze in JavaScript?


L’iniezione di dipendenze è un concetto molto diffuso negli ambienti di programmazione moderni. Essa consente di rendere il codice più modulare, più testabile e più riutilizzabile. Ecco come si può fare in JavaScript:

Supponiamo di avere due classi JavaScript, respectivamente denominati `Dependente` e `Dipendenza`.

```
class Dipendenza { metodo() { // fai qualcosa }
}

class Dipendente { constructor(dipendenza) { this.dipendenza = dipendenza; }

agisci() { this.dipendenza.metodo(); } } ```

Nel codice presentato, la classe `Dipendente` ha una dipendenza dalla classe `Dipendenza`. Invece di creare un’istanza di `Dipendenza` all’interno della classe `Dipendente`, la `Dipendenza` viene invece iniettata nel suo costruttore.

Una classe o funzione che utilizza iniezione di dipendenze può quindi essere facilmente testata sostituendo le sue dipendenze con oggetti finti (mocks) o stub.

Ecco un esempio di come potrebbe apparire l’iniezione di dipendenza in un contesto di utilizzo:

```
const dipendenza = new Dipendenza();
const dipendente = new Dipendente(dipendenza);

dipendente.agisci();
```

`dipendente` ora non sta instanziando direttamente `Dipendenza`, ma sta semplicemente utilizzando l’istanza che gli è stata data. Questo rende il suo utilizzo di `Dipendenza` completamente trasparente per `dipendente`.

Questo è un esempio semplificato. Nella pratica quotidiana, spesso utilizziamo un “container di dipendenza” che gestisce automaticamente le istanze e le dipendenze per noi. Ci sono molti buoni strumenti là fuori per gestire questo, incluso “InversifyJS” che fornisce un potente container IoC (Inversion of Control) per JavaScript.

Essendo JavaScript un linguaggio funzionale, non dobbiamo limitarci a iniettare solo “classi”. Possiamo anche iniettare semplici funzioni o qualsiasi altro tipo di dati.


Genera semplicemente articoli per ottimizzare il tuo SEO
Genera semplicemente articoli per ottimizzare il tuo SEO





DinoGeek offre articoli semplici su tecnologie complesse

Vuoi essere citato in questo articolo? È molto semplice, contattaci a dino@eiki.fr

CSS | NodeJS | DNS | DMARC | MAPI | NNTP | htaccess | PHP | HTTPS | Drupal | WEB3 | LLM | Wordpress | TLD | Nome dominio | IMAP | TCP | NFT | MariaDB | FTP | Zigbee | NMAP | SNMP | SEO | E-Mail | LXC | HTTP | MangoDB | SFTP | RAG | SSH | HTML | ChatGPT API | OSPF | JavaScript | Docker | OpenVZ | ChatGPT | VPS | ZIMBRA | SPF | UDP | Joomla | IPV6 | BGP | Django | Reactjs | DKIM | VMWare | RSYNC | Python | TFTP | Webdav | FAAS | Apache | IPV4 | LDAP | POP3 | SMTP

| Whispers of love (API) | Déclaration d'Amour |






Avviso Legale / Condizioni Generali di Utilizzo