C# や Java などの他のプログラミング言語のように、依存関係を ES2015 モジュールに注入することは可能ですか? モジュールをインポートすると、そのモジュールへの強い依存関係が作成され、後で実行時に変更できなくなります。たとえば、次の JavaScript コードがあります。
import Animal from './dog';
class Person {
feedAnimal() {
new Animal().feed();
}
}
dog モジュールをインポートしています。しかし、それを猫に変更したい場合はどうすればよいでしょうか。現時点では、1行目を手動で変更する必要がありますが、状況によっては、外部から構成可能にして、特定の条件下では猫が存在し、他の特定の条件下では猫になるようにする必要があります。従来の依存性注入で実行できるすべてのこと。
Scatter、Electrolyte、Wireなどの DI フレームワークがいくつかあることは知っていますが、残念ながらそれらのほとんどは特別な構文を必要とし、 ES2015 モジュール用に作成されていません。