Normalerweise befindet sich die DAO-Schicht in der Nähe der Datenbank. Die Serviceschicht kapselt Ihre Geschäftslogik und führt Transaktionen oder andere Dinge aus, anstatt nur DAO aufzurufen.
Dienst eines anderen Dienstes Aufruf ist häufiger, weil
Ihr Roleservice einig Business-Code ausgewertet hat, können Sie von Transaktionen oder Weitergabe von Nachrichten über JMS profitieren oder Sie können eine gewisse Sicherheit auf Service-Methoden in Zukunft haben. Eine Trennung von Bedenken ist also eine gute Praxis.
Einfach, die Dienste zu verspotten und zu testen (dies kann argumentiert werden, sogar DAO kann getestet werden), aber Trennung der Geschäftslogik ist eine gute Möglichkeit, Service-Layer-Schnittstellen zu verwenden.
Aber wenn Sie eine Business-Logik in Service-Layer nicht haben, können Sie, indem Sie einfach mit DAO redundanten Code vermeiden (aber für die Zukunft erhalten Sie einen Code Schulden für Refactoring, wenn Sie von Service-Layer-Geschäft denken)
Ja, ich dachte zuerst genauso. Aber der Dienst rief seine DAO an, und ich dachte, es wäre vielleicht eine gute Idee (vielleicht gibt es einige Gründe), DAO's nur von der Dienstschicht aus aufzurufen, weil Dienstschicht zum Aufrufen von DAO verwendet wird. – Erlan
Dienstleistungen Anrufdienste ist völlig in Ordnung – cahen