Komponenten sind keine Use-Cases
Eine Komponente ist ein Darstellungselement. Sie rendert Zustand. Sie reagiert auf Interaktion. Sie kommuniziert nach oben.
Sie orchestriert keine Business-Logik. Sie kennt keine Repositories. Sie führt keine Zustandstransformationen durch.
Der häufige Fehler
Abschnitt betitelt „Der häufige Fehler“// Das ist keine Komponente. Das ist ein Service mit Template.@Component(...)export class OrderComponent { constructor(private http: HttpClient) {}
async submitOrder(data: OrderData) { const validated = this.validate(data); // Business-Logik const enriched = this.enrich(validated); // Domänen-Transformation await this.http.post('/api/orders', enriched).toPromise(); // Infrastruktur this.router.navigate(['/confirmation']); // Navigation }}Das ist kein Darstellungselement. Das ist ein Use-Case in Component-Verkleidung.
Die Konsequenz
Abschnitt betitelt „Die Konsequenz“Wenn Use-Cases in Komponenten leben:
- Können sie nicht getestet werden ohne DOM
- Werden sie kopiert statt geteilt
- Brechen sie sobald sich die Darstellung ändert
- Verschwindet die Domänenlogik im Framework-Rauschen
Die Alternative
Abschnitt betitelt „Die Alternative“Komponente → Facade → Use-Case → Infrastruktur
Die Komponente ruft einen Facade-Methode auf. Die Facade orchestriert. Die Komponente beobachtet Zustand und rendert.
@Component(...)export class OrderComponent { constructor(private facade: OrderFacade) {}
submit(data: OrderData) { this.facade.submitOrder(data); }}Die Komponente weiß nicht, was danach passiert. Das ist der Punkt.