April 2018
Beginner
536 pages
13h 21m
English
Many articles use the terms dependency injection and dependency inversion as if their meanings were identical, but they are two very different concepts.
The following example declares a class named Ninja and a class named Katana. The Ninja class has a dependency on the class Katana:
class Katana {
public tryHit(fromDistance: number) {
return fromDistance <= 2;
}
}
class Ninja {
public constructor(
private _katana: Katana
) {}
public fight(fromDistance: number) {
return this._katana.tryHit(fromDistance);
}
}
After declaring the preceding classes, we can inject an instance of Katana into the Ninja class:
const ninja = new Ninja(new Katana()); ninja.fight(2); // true ninja.fight(5); // false ...