Come descrivo il pattern del repository?

4

Attualmente sto lavorando al progetto con il nuovo team e stanno usando un modello di repository che è nuovo per me. In questo repository, stanno facendo attualmente

1.If we are offline, we will load data from file
2.Otherwise, we will make an api call to get data from server.

Ho fatto alcune ricerche e ho notato che il repository fornisce operazioni CRUD di base al database locale. Tuttavia, se consideriamo che Repository agisce come Data Access Layer, può effettuare una chiamata api per recuperare i dati anche da remoto.

Quale è il modo corretto di seguire. Qualche idea?

    
posta tonytran 29.11.2016 - 18:07
fonte

3 risposte

9

Lo scopo di un repository è di fornire un livello di astrazione per l'accesso ai dati. Questo livello di astrazione dovrebbe proteggere l'utente del repository dai dettagli dell'accesso ai dati. Cose come stringhe di connessione, origini dati, passaggio a un'origine dati diversa ... L'utente non dovrebbe preoccuparsi di queste cose.

In altre parole, l'utente di un repository non dovrebbe preoccuparsi della provenienza dei dati. Questo è un dettaglio di implementazione. Il modo in cui implementi questi dettagli dipende interamente da te e dai requisiti specifici del tuo software.

    
risposta data 29.11.2016 - 18:29
fonte
2

Un'implementazione del modello di repository dovrebbe apparire come una raccolta di oggetti in memoria. Dovresti essere in grado di aggiungere, rimuovere e trovare oggetti in un repository. Non dovrebbe avere alcuna semantica di tipo database come Save () o CommitTransaction - questi appartengono all'implementazione della tua Unità di lavoro. A volte ci si riferisce a "Persistenza ignoranza".

Generalmente, il codice dell'applicazione funzionerà contro il repository e l'infrastruttura dell'applicazione scaricherà automaticamente le modifiche e impegnerà la transazione tramite l'unità di lavoro dopo aver gestito ciascuna richiesta. Ogni richiesta riceverà una istanza dell'Unità di lavoro, che sarà condivisa da tutti i Repository utilizzati per gestire la richiesta. A volte viene indicato come "Sessione per richiesta".

    
risposta data 30.11.2016 - 21:14
fonte
0

Il repository e l'unità di modelli di lavoro hanno lo scopo di creare un livello di astrazione tra il livello di accesso ai dati e il livello della logica aziendale di un'applicazione. L'implementazione di questi modelli può aiutare a isolare l'applicazione dalle modifiche nell'archivio dati e può facilitare il test dell'unità automatizzata o lo sviluppo basato sui test (TDD).

    
risposta data 29.11.2016 - 21:27
fonte

Leggi altre domande sui tag