Ich brauche eine komplexe Geschäftslogik in db für perfomance Gründen zu setzen und ich bin mit respository Muster. Die Frage ist - sollte ich diese Geschäftslogik aus dem Repository aufrufen? Ich weiß, dass das Repository BL nicht kennen sollte, weil es nur ein Vermittler zwischen der BL und dem Datenspeicher ist (es sollte nur CRUD und Abfragemethoden enthalten). Was denkst du?Repository und db spezifische Geschäftslogik
Antwort
Die Verantwortung eines Repository ist einen Anschein von In-Memory-Sammlung von Entitäten von bis zu bieten abzufragen oder hinzuzufügen. Ich weiß nicht, über welche Art von Geschäftslogik Sie sprechen, aber die Wahrscheinlichkeit ist groß, dass Sie das Prinzip der einheitlichen Verantwortung brechen würden, wenn Sie es in einem Repository einführen würden. Dies würde bedeuten, dem Repository-Code viele Gründe zu geben, sich zu ändern, weniger Kohäsion und damit viele Gründe zu brechen.
Wenn Sie in Ihrer Datenbank gespeicherten Prozeduren mit Business-Logik haben, würde ich empfehlen, eine Art Schnittstelle zwischen dem rufenden Code einführen und dem db Dinge zu halten entkoppelt. Es wäre kein Repository, da es den Zweck hätte, eine Geschäftslogik anstelle von persistenten Daten auszulösen, aber die Implementierung könnte beispielsweise die Form eines Infrastrukturdienstes annehmen.
Dies ermöglicht es Ihnen, Ihren Code isoliert mit einer Mock db zu testen und zu einer anderen Implementierung der DB-Zugriffsschnittstelle zu einem anderen DBMS oder sogar nur zu Objekten zu wechseln, wenn Sie gespeicherte Prozeduren aufgeben möchten Irgendwann.
- 1. Komplexe Geschäftslogik im Repository
- 2. Geschäftslogik Validierungsmuster und Hinweise
- 3. Spring Framework und Jpa Repository gibt ungültige DB-Daten zurück
- 4. Also was ist ein db-Repository
- 5. DDD - Repository Pattern zurückgebende db keys?
- 6. Trennung von Präsentations- und Geschäftslogik in PHP
- 7. Doppelte Geschäftslogik in Ruby und SQL
- 8. Trennung der Geschäftslogik von PHP Doctrine 2
- 9. Verdoppeln die Validierer Geschäftslogik?
- 10. Geschäftslogik ASP.NET MV
- 11. ServiceStack, wo Geschäftslogik?
- 12. Ninject, Repository und DAL
- 13. Lumen Laravel entkoppeln Geschäftslogik
- 14. Vorteil der Erstellung eines generischen Repository vs. spezifische Repository für jedes Objekt?
- 15. MySQL: Create Benutzer mit Rechten nur für spezifische db
- 16. Geschäftslogik im Konstruktor - C#/Linq zu Sql
- 17. MVC/MVP/MVVM - Wie man Geschäftslogik organisiert
- 18. Wohin mit Geschäftslogik in knockout.js?
- 19. IsUserInRole Jetty Einschränkungen für Geschäftslogik
- 20. LINQ to SQL und das Repository-Muster
- 21. Wohin geht Geschäftslogik in Schienen?
- 22. Entfernen von doppelten DB-Migrationen aus dem Git-Repository
- 23. C++ Polymorphismus und spezifische Methoden
- 24. So teilen Sie Geschäftslogik zwischen mehreren Anwendungen
- 25. IRepository-Konzept, wo spezifische Repositories erstellt werden
- 26. Wo kann man Datenbank- und Geschäftslogik in MVC schreiben?
- 27. Haken in Drupal Registrierung und validiere Benutzerinformationen gegen Geschäftslogik
- 28. Datenmodelle und Geschäftslogik in isomorpher (React/Redux/Express/Mongo) App
- 29. Einfach Elegantes Muster zum Trennen von Datenzugriff, Geschäftslogik und Präsentation
- 30. Repository und unveränderbare Objekte?
„Ort einige komplexe Geschäftslogik in db“ => meinen Sie gespeicherte Prozeduren? – guillaume31
ja, ich meine SP. – andrew