Ich habe folgende Situation:So definieren Sie eine gute Repository-Schnittstelle
Ich sammle Daten auf Hosts. Jeder Host verfügt über Sammlungen von Eigenschaften und Status. und die Hosts sind in Gruppen gesammelt.
Jede Gruppe hat eine eindeutige ID und jeder Host hat eine eindeutige ID
und alle Gruppen in einer einzigen „Repository“ gesammelt.
ich zur Zeit mit der folgenden Datenstruktur:
public class Host {
private final Map<PropertyId, Property> properties;
private final Map<StatusId, Status> statuses;
}
public class Group {
private final Map<HostId, Host> hosts;
}
public class AllGroups {
private final Map<GroupId, Group> groups;
}
Die derzeit als reguläres implementiert wird in Speicherdatenstruktur aber ich brauche das alles in einer Datenbank zu speichern. Ich möchte eine gute Abstraktion definieren, würde mir erlauben:
- Um jedes Element zu lesen
- zu aktualisieren erstellen und Eigenschaften löschen und Status
- hinzuzufügen und zu löschen Hosts
- Gruppen löschen
Ich las einige Beiträge bezüglich des Repository-Muster und es scheint angemessen, aber ich kann nicht herausfinden, wie Sie die Schnittstellen korrekt definieren
Sollte ich 1 Repository-Schnittstelle haben? Oder sollte ich separate Schnittstellen für HostRepository haben, PropertyRepository StatusReporitory ...
Da "jede Gruppe eine eindeutige ID hat und jeder Host eine eindeutige ID hat", würde ich erwarten, ein "ID" -Feld in den Host- und Gruppenklassen zu sehen. –
So etwas (https://losechies.com/jimmybogard/2009/09/03/ddd-repository-implementation-patterns/) ist eine Lektüre wert. Denken Sie daran, dass DDD Fowlers Muster annimmt und zusätzliche Nuancen hinzufügt. Z.B. Nur aggregierte Wurzeln sind über ein Repository verfügbar. –