2016-05-02 15 views

Antwort

2

Was genau bedeutet "Repository" in diesem Zusammenhang?

Repository ist eine der eingeführten Muster in Patterns of Enterprise Application Architecture (Martin Fowler, 2002). In dem Buch Repository definiert als:

vermittelt zwischen der Domäne und Datenmapping- Schichten unter Verwendung eine Sammlung ähnliche Schnittstelle für den Zugriff Domäne

Ein System mit einem komplexen Domänenmodell aus einem oft Vorteilen Objekte Layer, wie die von Data Mapper zur Verfügung gestellt, die Domäne Objekte aus Details des Datenbankzugriffscode isoliert. In solchen Systemen kann es sich lohnen, eine weitere Abstraktionsschicht über die Mapping-Schicht aufzubauen, wo der Abfrage-Konstruktionscode konzentriert ist. Diese wird wichtiger, wenn es eine große Anzahl von Domänenklassen oder schwere Abfragen gibt. In diesen Fällen hilft insbesondere das Hinzufügen dieser Schicht , doppelte Abfragelogik zu minimieren.

Ein Repository vermittelt zwischen den Domänen- und Datenzuordnungslayern , die wie eine In-Memory-Domänenobjektsammlung agieren. Client-Objekte Konstruieren Abfrage Spezifikationen deklarativ und senden Sie sie an Repository für die Zufriedenheit. Objekte können hinzugefügt zu und aus das Repository entfernt, wie sie können aus einer einfachen Sammlung von Objekten und der Code-Mappings durch Repository eingekapselt werden die entsprechenden Operationen hinter den Kulissen durchführen. Konzeptuell kapselt ein Repository die Menge der in einem Datenspeicher persistierten Objekte und die über sie ausgeführten -Operationen ein, wodurch eine objektorientierte Ansicht der Persistenzschicht bereitgestellt wird. Repository unterstützt auch das Ziel erreichen eine saubere Trennung und unidirektionale Abhängigkeit zwischen der Domäne und Daten Mapping-Schichten.

Weiterführende Literatur


Für detailliertere Diskussion über Repository-Muster, sollten Sie einen Blick auf Patterns of Enterprise Application Architecture (Fowler, 2002) nehmen und Domain Driven Design (Evans, 2003).

+1

Vielen Dank für Ihre Antwort und Hinweise! – CuriousMind

Verwandte Themen