Frage

Ich versuche nur, meinen Kopf um die Aufgaben der Serviceschicht und Repository-Schicht zu erhalten, wenn ein Objekt in meine Persistenzspeicher speichern.

Mein aktueller unter stehend, ist dies:

In meinem Controller Ich habe ein „Hinweis“ Objekt aus den Daten durch den Benutzer (aus dem Formular) eingereicht erstellt. Der Benutzer ruft dann auf „Speichern“ auf der „Noteservice“ (die über Dependency Injection ist).

Im Rahmen der „Save“ Methode auf dem „Noteservice“ Ich trage meine Business-Logik Validierung und dann übergeben Sie das „Hinweis“ Objekt in die „Speichern“ Methode des „NoteRepository“.

Die „Save“ Methode der „NoteRepository“ dann überprüft, ob es bereits ein Primärschlüssel für dieses Objekt ist und wenn ja, dann ist erhalten, dass das Objekt aus der db und aktualisiert sie die Eigenschaften des „Anmerkung“ Objekt mit durchlaufen und es ist dann wieder auf den db gespeichert. Wenn es kein Primärschlüssel ist, dann wird das Objekt einfach an die DB gespeichert und das dann mit ihm in den Dienst zurückgegeben werden neu Primärschlüssel erstellt.

War es hilfreich?

Lösung

Ihre Trennung von Bedenken klingt ziemlich gut zu mir. Wir folgen dem gleichen Muster, neigen aber eine weitere Schicht rechts über die Repository-Schicht hinzuzufügen. Wir nennen es die Domänenschicht und führen alle unsere Geschäftslogik in dort. Unsere Service-Schicht ist nur einen Durchgang durch unsere Domain des Falles, dass wir alle unserer Dienstleistungen zu einem ESB in der Zukunft veröffentlichen.

Der größte Vorteil von dem, was Sie tun, ist nicht alle Geschäfte und DB-Logik in der Steuerung unübersichtlich, die eine Menge Leute neigen zu tun. Sie wollen immer Ihre Controller so leicht wie möglich sein, wenn Sie wirklich MVC folgen sollen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top