javascript / expert
Snippet
Fortgeschrittene Dependency Injection mit InjectionToken-Factories
InjectionToken-Factories ermöglichen eine dynamische, umgebungsabhängige Auflösung von Abhängigkeiten auf Konfigurationsebene. Dies kapselt komplexe Instanziierungslogik direkt im Token und hält Komponenten sauber und testbar.
snippet.js
1
2
3
4
5
6
7
8
9
10
11
export interface StorageStrategy {save(key: string, value: any): void;}export const STORAGE_STRATEGY = new InjectionToken<StorageStrategy>('StorageStrategy', {providedIn: 'root',factory: () => {const isSupported = typeof window !== 'undefined' && !!window.localStorage;return isSupported ? inject(LocalStorageStrategy) : inject(MemoryStorageStrategy);}});
angular
Erklärung
1
new InjectionToken<StorageStrategy>(...)
Erstellt einen eindeutigen Suchschlüssel für das Dependency-Injection-System.
2
factory: () => { ... }
Definiert die Logik zur Auflösung der Implementierung zur Laufzeit.
3
inject(LocalStorageStrategy)
Nutzt die funktionale inject()-Methode, um andere Abhängigkeiten innerhalb der Factory abzurufen.