10

Ho utilizzato il pattern di repository (DDD e POEAA) per un po 'di tempo. Tuttavia alcuni membri del nostro team hanno sostenuto che si tratta solo di un ulteriore livello di astrazione e non necessario. Posso vedere alcuni vantaggi nei loro argomenti. Le moderne soluzioni ORM (NHibernate o EF) hanno quasi tutto ciò di cui hai bisogno. Ho cercato e trovato alcuni articoli come this e counterargument su questo argomento. Quindi il repository è un overkill?Il repository è un overkill

risposta

12

Dipende, principalmente, dalla complessità del problema e dal ruolo svolto dal modello di dominio nella soluzione. Per soluzioni semplici, il repository è probabilmente eccessivo. Ma per domini complessi con un linguaggio robusto e bisogni/requisiti in evoluzione, il Repository è un'astrazione pulita e semplice che possiede il ciclo di vita dell'oggetto dominio. Molti ORM faranno molto di questo, ma, in un dominio complesso, ci sarà sempre qualche attività di dominio che ha senso in un repository e che non è supportata da un ORM pronto all'uso.

Bottom line: dipende dal contesto.

+9

Non si può mai sbagliare con "dipende". :) –

+0

@Arnis - Ecco perché, come sviluppatori, non abbiamo solo martelli, abbiamo un'intera cassetta degli attrezzi. – Martin

+5

@Martin alcuni hanno solo del nastro adesivo :) –

4

L'accesso ai dati nei test di unità è il motivo principale per cui utilizzo le interfacce del repository. Un altro motivo per la manutenibilità: è possibile implementare facilmente le strategie di memorizzazione nella cache o passare ad altre implementazioni di accesso ai dati, come ottenere dati dal servizio anziché dal DB.

1

L'unico motivo per cui utilizziamo i repository nel nostro progetto è che rafforza chi sono i nostri Root aggregati (consentiamo solo repository per AR) in modo che lavoriate correttamente con l'AR invece di eseguire query per qualsiasi cosa colpisca la vostra fantasia.

E come già detto .. fornisce un'interfaccia piacevole da utilizzare durante i test di unità.

Problemi correlati