Come gestiamo l'iniezione di dipendenza nelle librerie di classi? Data la seguente struttura di classe, vorremmo iniettare un'istanza di Bar
in Foo
, e preferiremmo non farne la responsabilità del cliente.
namespace MyLibrary {
export class Foo {
private readonly bar: Internal.Bar;
constructor(bar: Internal.Bar) {
this.bar = bar;
}
}
}
namespace Internal {
export class Bar { }
}
Se esistesse un framework che gestiva l'iniezione delle dipendenze, ci affideremmo a tale framework per fornire un'istanza di Bar
. Se esistesse un metodo principale, avremmo reinventato tutte le dipendenze presenti. Nel caso di una libreria di classi, tuttavia, dove istanziamo Bar
?
In altre parole, dove inseriamo la radice di composizione di una libreria di classi?