Ich habe eine Repository-Schicht, die für meinen Datenzugriff verantwortlich ist und von einer Dienstschicht aufgerufen wird. Die Dienstschicht gibt DTOs zurück, die serialisiert und über die Leitung gesendet werden. Meistens tun Dienste nicht viel mehr, als auf ein Repository zuzugreifen und das zurückzugeben, was das Repository zurückgibt.
Damit das funktioniert, muss das Repository jedoch eine Instanz dieses DTOs zurückgeben. Andernfalls müssten Sie zunächst das vom Repository zurückgegebene Datenschichtobjekt einem DTO in der Dienstebene zuordnen und dieses zurückgeben. Das erscheint einfach nur verschwenderisch.
Wenn die Erstellung der DTOs in der Serviceschicht erfolgt, muss etwas, das zuvor mit einem Repository-Aufruf und somit einer Datenbankabfrage erledigt werden konnte, nun mit mehreren Repository-Aufrufen in der Serviceschicht geschehen, um das endgültige DTO "zusammenzustellen". Es sei denn, ich erstelle ein Transportobjekt zwischen der Daten- und der Serviceschicht, das ein solches zusammengesetztes Objekt enthalten kann. Welche dann muss auf ein DTO abgebildet werden. Es scheint einfach verschwenderisch zu sein, um der Reinheit willen. Aber es scheint auch falsch zu sein, dass die Repository-Schicht Objekte zurückgibt, die nur existieren, um über die Leitung gesendet zu werden.