Component as Adapter
Eine Komponente ist kein Ort für Business-Logik. Sie ist ein Adapter zwischen der Domäne und der Darstellung.
Das Prinzip
Abschnitt betitelt „Das Prinzip“Die Komponente kennt:
- Wie Domänenzustand dargestellt werden soll (ViewModel)
- Wie Nutzer-Interaktion an die Domäne weitergegeben wird (Facade-Calls)
Sie kennt nicht:
- Wie der Zustand zustande kommt
- Welche API aufgerufen wird
- Welche Business-Regeln gelten
Implementierung
Abschnitt betitelt „Implementierung“@Component({ template: ` <app-task-list [tasks]="facade.tasks()" [isLoading]="facade.isLoading()" (taskSelected)="facade.selectTask($event)" /> `,})export class TasksContainerComponent { protected facade = inject(TasksFacade);}Die Komponente ist dünn. Sie mappt Signals auf Template-Inputs und User-Events auf Facade-Calls.
Warum das funktioniert
Abschnitt betitelt „Warum das funktioniert“Wenn sich die Darstellung ändert (neues Design-System, PrimeNG → Material), ändert sich die Komponente. Die Domäne bleibt unberührt.
Wenn sich die Business-Logik ändert (neue Validierung, anderer API-Endpunkt), ändert sich die Facade/der Store. Die Komponente bleibt unberührt.
Die Adapter-Schicht absorbiert Änderungen in eine Richtung.