L'unità di lavoro è valida secondo un modello di servizio?

4

Ho studiato i modelli di progettazione. Ho imparato a conoscere i repository, l'unità di lavoro, l'iniezione delle dipendenze, MVC. Sto imparando a conoscere il modello del livello di servizio.

Sto cercando di cogliere l'utilità di Unità di Lavoro (se presente) in un livello di servizio.

Dai miei servizi di comprensione fornisco l'incapsulamento per l'accesso al database modello specifico come obiettivo principale. Pertanto, se fornisco a un controllore un IService, il controller sarà in grado di accedere solo alle specifiche fornite in un servizio, mentre se fornisco un IUnitOfWork avrà accesso a tutti i repository disponibili in esso.

Voglio dire che è logico che IService acceda direttamente ai repository dal momento che incapsulerà l'accesso al database e fornirà la logica di business allo stesso tempo.

Quindi in un servizio IService qual è l'obiettivo dell'Unità di lavoro? Vale la pena averne uno?

    
posta João Sequeira 09.03.2017 - 12:27
fonte

1 risposta

1

Questi sono due modelli diversi con uno scopo completamente diverso:

Ovviamente il livello di servizio potrebbe raggruppare le operazioni che sono esposte. Ad esempio, salva PurchaseOrder insieme al suo LineItems dipendente in una operazione, invece di un'operazione per il salvataggio di PurchaseOrder e un'altra per il salvataggio di LineItems .

Ma questo raggruppamento / imballaggio non risolverebbe la domanda su quale elemento aggiornare nel database se solo un LineItem su 10 in PurchaseOrder è stato modificato. Non affronta i problemi di concorrenza quando diversi utenti tentano di aggiornare lo stesso PurchaseOrder allo stesso tempo. E questo è lo scopo dell'unità di lavoro.

Il livello di servizio isola la logica del dominio dal fronte esterno (ad esempio il livello di presentazione). L'unità di lavoro è utilizzata dal back-office della logica di dominio.

    
risposta data 11.03.2017 - 01:42
fonte

Leggi altre domande sui tag