10

Ich habe Repository-Muster (DDD und POEAA) seit einiger Zeit verwendet. Einige unserer Teammitglieder haben jedoch argumentiert, dass es nur eine zusätzliche Ebene der Abstraktion und unnötig ist. Ich kann einige Vorteile in ihren Argumenten sehen. Moderne ORM-Lösungen (NHibernate oder EF) haben fast alles, was Sie brauchen. Ich suchte und fand einen Artikel wie this und counterargument zu diesem Thema. Ist das Repository-Muster also ein Overkill?Ist Repository-Muster ein Overkill

Antwort

12

Es hängt hauptsächlich von der Komplexität Ihres Problems und der Rolle Ihres Domänenmodells in der Lösung ab. Für einfache Lösungen ist das Repository wahrscheinlich übertrieben. Aber für komplexe Domänen mit einer robusten Sprache und sich entwickelnden Bedürfnissen/Anforderungen ist das Repository eine nette, saubere Abstraktion, die den Domain-Objekt-Lebenszyklus besitzt. Viele ORMs werden viel davon tun, aber in einer komplexen Domäne wird es immer einige Domänenaktivitäten geben, die in einem Repository sinnvoll sind und die von einem ORM nicht ohne weiteres unterstützt werden.

Fazit: Es hängt vom Kontext ab.

+9

Sie können nie falsch liegen mit "es kommt darauf an". :) –

+0

@Arnis - Deshalb haben wir als Entwickler nicht nur Hämmer, wir haben auch eine ganze Toolbox. – Martin

+5

@Martin einige haben Klebeband nur :) –

4

Mocking Datenzugriff in Komponententests ist der Hauptgrund, warum ich Repository-Schnittstellen verwenden. Ein weiterer Grund für die Wartbarkeit - Sie können problemlos Caching-Strategien implementieren oder zu einer anderen Datenzugriffsimplementierung wechseln, z. B. Daten vom Dienst anstelle von DB abrufen.

1

Der einzige Grund, warum wir Repositories in unserem Projekt verwenden, ist, dass er unsere Aggregatwurzeln erzwingt (wir erlauben nur Repositories für ARs), so dass Sie den AR richtig durcharbeiten, anstatt nach etwas zu fragen.

Und wie Al erwähnt .. es bietet eine nette Schnittstelle, um während Komponententests zu verspotten.