Прости меня за то, что я не понял этого, если бы это было сказано.
Почему Угловая реализация Инъектора Зависимости использует инъекции через
constructor
?
Я привык видеть DI
по-разному. Даже статический метод имел бы смысл (если это существует, извините, я еще не вырыл эту глубину, пока я не на неделю).
Было бы проще или логичнее использовать его таким образом, более похожий на DI, который мы видим чаще, но все же передаем его в конструкторе?:
// Non-Angular Example
@Component({})
class FooComponent {
public appState: AppState;
constructor(DI: DependencyInjector) {
this.appState = DI.get('AppState');
}
ngOnInit() {}
}
Угловое больше похоже на это, я не уверен, что это только для подробностей или если есть другие причины.
// Angular 2/4 Example
@Component({})
class BarComponent {
public appState: AppState;
constructor(appState: AppState,
router: Router,
etc: EtcSomething) {
}
ngOnInit() {}
Я знаю, что Google подумал об этом, я просто пытаюсь понять аргументацию и/или выгоду. Возможно, я проснулся, думая о глупых вещах, и это очевидно и просто перевернуло мне голову, но я пропустил это.
Я надеюсь, что то, что я прошу, имеет смысл, мне просто интересно, почему.