Zum Inhalt springen

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.

// 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.

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

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.