Ich entwickle eine Web-Anwendung mit einer geschichteten Architektur. Ich habe:Ist es eine schlechte Übung, Entitätsobjekte für alle Ebenen einer Webanwendung zu verwenden?
- Application Layer (Controller)
- Service Layer (Services)
- Data Access Layer (DAOs)
, die mit einem Back-End-Oracle-Datenbank verbindet.
Ich verwende JPA mit Hibernate als die Implementierung. Ich erstelle daher Entitäten, um die Objektansicht meiner relationalen Datenbanktabellen zu modellieren.
Meine Frage ist ... Wird es als schlechte Praxis angesehen, diese Objekte Objekte über alle 3 meiner Schichten zu verwenden?
Ich weiß, es muss mindestens von Data Access Layer verwendet werden, aber was ist darüber hinaus in den Service & Application Layers?
Ich habe gesehen, einige Leute verwenden DTOs in den Dienst & Anwendungsschichten statt, und sie tun Konvertierung zwischen DTOs und Entitäten zwischen den Service-Datenzugriffsschichten &.
Frage mich nur, was ist die beste Praxis für diese und was sollte der beste Ansatz sein?
Der geeignete Bereich/Lebensdauer einer Entität hängt oft von der Lebensdauer/Reichweite ihres Entity Managers ab.Sie können außerhalb des Managerbereichs veraltet sein, aber sie werden zu früh verworfen, und Sie können den Cache der ersten Ebene des Managers nicht effektiv nutzen. Es gibt keinen einheitlichen Ansatz. Was Sie tun sollten, hängt von der Wahl der Plattform, der Integration von JPA und den Anforderungen ab. – McDowell