Domanda

Solo cercando di ottenere la mia testa intorno le responsabilità del livello di servizio e lo strato repository durante il salvataggio di un oggetto al mio deposito persistenza.

La mia corrente in piedi è questa:

Nel mio controller ho creato un oggetto "Nota" dai dati presentati dall'utente (dal modulo). L'utente quindi chiama "Salva" sulla "NoteService" (che è lì attraverso l'iniezione di dipendenza).

All'interno del metodo "Salva" sulla "NoteService" Io svolgo la mia convalida logica di business e quindi passare l'oggetto "Nota" per il metodo "Salva" del "NoteRepository".

Il metodo "Salva" del "NoteRepository" allora controlli per vedere se c'è una chiave primaria esistente su questo oggetto e, in caso affermativo quindi ottenere di quell'oggetto dal db e aggiornamenti proprietà che sta utilizzando l'oggetto "Note" ha attraversato e è quindi salvato indietro al db. Se non v'è alcuna chiave primaria, allora l'oggetto viene semplicemente salvato il db e poi tornò al servizio, con i suoi appena creata chiave primaria.

È stato utile?

Soluzione

Il tuo separazione degli interessi suona abbastanza bene per me. Seguiamo lo stesso modello, ma tendono ad aggiungere un altro strato di destra circa il livello di repository. Noi lo chiamiamo il livello di dominio e ad effettuare tutta la nostra logica di business in là. Il nostro livello di servizio è solo un passaggio attraverso al nostro dominio nel caso in cui abbiamo bisogno di pubblicare qualsiasi dei nostri servizi ad un ESB nel futuro.

Il più grande vantaggio di quello che state facendo non è ingombrare tutto il business e la logica DB nel controller, che un sacco di persone tendono a fare. Hai sempre voglia i controller di essere il più leggero possibile se si vuole veramente seguire MVC.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top