2009-08-25 10 views
2

Ich habe seit vielen Jahren programmiert, vor kurzem habe ich versucht, einige der Ideen aus Domain-Design zu verwenden, aber ich habe immer noch mit der Entscheidung über gute Namen für bestimmte Teile eines Systems.Wie benenne ich Klassen, die ein Repository für den Datenzugriff verwendet?

Hier ist ein Beispiel;

Ich habe einen WCF-Webservice, der "Computer" -Objekte zurückgibt. Das Objekt ist ein Aggregatstammverzeichnis, das untergeordnete Entitäten enthält.

Die untergeordneten Entitäten werden aus zwei verschiedenen Datenbanken und aus Active Directory geladen.

Jetzt habe ich separate Repository-Klassen für jede Entität "ComputerAssetRepository", "DeploymentRepository", "DirectoryRepository" usw., dann habe ich ein "ComputerRepository", das jedes untergeordnete Repository aufruft und das Ergebnis in den "Computer" zurückgibt. aggregierte Root-Entität

Ich sollte wahrscheinlich nur ein einziges "ComputerRepository" und die anderen Klassen sind nur für den Datenzugriff aus den verschiedenen Quellen verantwortlich. Da sie gemeinsame Repository-Funktionen FindById/Add/Remove/Contains usw. benötigen, nenne ich sie Repositories.

Gibt es einen besseren Namen für diese Klassen?

Antwort

1

ich glaube, die richtige Antwort hängt davon ab, ob die ComputerAsset, Deployment, Directory und andere ähnliche Kind Einheiten sind global zugänglichen Aggregate in der gleichen Weise, dass Computer ist.

So oder so, ich denke, sie verdienen ihre eigenen Repositories und ich denke, sie sind passend für jetzt benannt. Ein "Repository" im Sinne von DDD bezieht sich einfach auf den Traversierungsmechanismus, mit dem Sie mit vorhandenen Objekten arbeiten (Fabriken übernehmen die Erstellung neuer Objekte). Wenn sie jedoch nicht global verfügbar sein sollen, müssen Sie diese Repositories nur intern in ComputerRepository einfügen.

+0

Danke für die Bestätigung. – Andronicus