Domanda

Ho i seguenti oggetti:

Person <- Contatto -> ClientsPerson <- Client

Sto utilizzando il modello repository con un livello di servizio. Ma già qui, essendo un perfezionista, Mi sono perso!

Ho anche un PersonService, ClientService e sono abbastanza sicuro che ho bisogno di avere un ContactService che dovrebbe chiamare la personService.Add (persona) e clientsPersonService.Add (client) -? O

Il compito è quello di aggiungere un contatto. Il contatto avrebbe un oggetto Person legati, e un oggetto ClientsPerson. E che avrebbe ClientsPerson OFC. dispone di un client.

Dove dovrebbero i diversi lavori andare? Ho sentito che è male per chiamare un servizio / repository da uno all'altro.

È stato utile?

Soluzione

Questa risposta dipende dalla vostra ORM e come esso cascate salva. Si assume non si utilizza un ORM che cascate modifiche.

Il gestore dei servizi metodi strato dovrebbero riflettere le azioni che è necessario per realizzare da un senso degli affari. Spesso trovo che le mie azioni di controllo corrispondono molto da vicino a metodi di servizio.

Nel tuo esempio, avrei il Build Service e si riferiscono ai soggetti necessari e parlare con pronti contro termine per salvarli; in questo modo se c'è un problema lungo il modo di parlare ai pronti contro termine può rotolare in avanti e fare tutto ciò che la pulizia è necessaria.

Repos dovrebbero essere relativamente muto. I servizi dovrebbero fare lo (qualcosa di simile blocco NHib, e forse anche allora) rapporto e attività di lavoro.

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