Es gibt Campaign Entity und dafür CampaignRepository mit diesen Funktionen
Aber jetzt möchte ich diese Kriterien -:
Also für alle diese Kampagnen Filter,
Erstelle ich für jedes Repository separate Funktionen?
und implementieren Sie so.
Getall Kampagnen und filtern Sie dann erforderliche Kampagnen, aber ich möchte nicht alle Kampagnen. Bei der Suche in Google finde ich diese Lösung
1: Ссылка
Gibt es eine Methode, die mehrere Funktionen vermeiden kann, oder mache ich separate Funktionen für jeden dieser Filter?
Haben Sie erwogen, das Muster Spezifikation in Ihrer Anwendung zu implementieren? Vielleicht sieht es nach einem Overkill aus, aber es kann sich als nützlich erweisen, wenn Ihre App über einige komplexe Benutzerfilteroptionen verfügt.
%Vor%Hier ist ein Beispiel, wie das Laden aus dem Repository aussehen könnte
%Vor%Ich möchte auch hinzufügen, dass es sehr darauf ankommt, welche Art von Datenzugriffslösung Sie verwenden, es erleichtert die Implementierung, wenn Sie wissen, welche Art von API Sie verwenden (Criteria API, SQL oder was auch immer) kann Ihre Spezifikationsschnittstelle optimieren, um die Implementierung zu vereinfachen.
UPDATE : Wenn Sie Spezifikationen in .NET mit linq und nHibernate implementieren, lesen Sie Ссылка
Ich würde mit der Erstellung von zwei Spezifikationen beginnen: TopCampaignSpec und CampaingCreatedSpec.
%Vor%CampaingCreatedSpec kann auch durch eine generischere DateRange-Klasse ersetzt werden, wenn Sie diese Funktionalität an anderer Stelle benötigen:
%Vor%Ich empfehle auch dringend, sich von "generischen" Repositories und Entitäten fernzuhalten. Bitte lesen Sie das
Aus DDD-Sicht spielt es keine Rolle, ob der Datenzugriffscode als SQL / HQL / ICriteria oder sogar als Webservice-Aufruf implementiert ist. Dieser Code gehört zur Repository-Implementierung (Datenzugriffsschicht). Dies ist nur ein Beispiel:
%Vor%So würde ich das machen:
%Vor%Die Argumentation ist einfach - es zählt, was Sie interessiert, nach Kampagnen zu suchen (dieses Wissen ist Teil Ihrer Domain). Wenn wir explizit Funktionen angeben, um das zu reflektieren, werden wir es immer wissen.
Sollen alle Methoden im Kampagnenrepository hinzugefügt werden?
Ich sehe nichts falsch damit.
Arnis Ich möchte etwas Code, wie Sie die Created Today-Funktion in der Domäne selbst implementieren. Wird hier in dieser Funktion ein Repository injiziert? Danke für Ihre Kooperation
Ich würde CreatedToday-Funktion in meiner Domäne nicht implementieren. Es würde im Repository sitzen und Repository-Implementierungen sollten keine Domäne sein. Wenn Sie meinen, wie ich das Campaign-Repository verwenden würde und ob es von der Domain aus verwendet werden soll - nein, sollte es nicht innerhalb der Domain verwendet werden. Wenn Sie meinen, wenn ich Repository in Repository einfügen würde - Sie hören zu viel von xzibit .
Tags und Links domain-driven-design