In 'saubere Architektur' sind die Interaktoren (Anwendungsfälle) für die Definition der Geschäftslogik verantwortlich. Die meisten Beispiele definieren Anwendungsfälle auf folgende Weise:Saubere Architektur - wie man Datenbanktransaktionen anspricht?
public MyUseCase() {
public boolean execute(...) {
int id = repository.insert(a)
if(id > 0) {
b.aId= id;
repository.insert(b);
...
}
}
}
Interaktoren verwenden meist einfache CRUD-ähnliche Operationen oder Abfragen im Repository. Das obige Beispiel ist synchron für den Fall der Einfachheit, aber Sie können Repos mit dem gleichen Ansatz asynchrone Lösungen wie Callbacks oder Rxjava finden.
Aber was ist mit Use Case Ungeschicklichkeit. Zum Beispiel können Sie nicht 100% sicher sein, dass nach dem Einfügen a
es immer noch da sein wird, wenn Sie b
einfügen. Was passiert, wenn Sie nach dem Einfügen a
eine RepositoryException beim Einfügen b
erhalten.
Alle repos ich gesehen habe, so weit nehmen Sie sie nicht in Betracht, so meine Frage ist:
Was ist die Lösung des obigen Problems in saubere Architektur?