Uno dei principali vantaggi del modello di repository è la possibilità di cambiare facilmente le implementazioni per altre implementazioni.
Dopo aver appreso di questo schema ho iniziato a creare un sacco di cose in repository come un repository HttpClient
, ad esempio, in questo modo posso decidere quale client voglio usare. Un altro esempio è un repository NumberGenerator
che può essere implementato solo con la generazione di numeri casuali, o altre volte genera un numero cercando qualcosa sul web.
Ma poi avevo bisogno di memorizzare le cose nel database, quindi stavo pensando di avere qualcosa del genere:
Repositories/
Number/
NumberGenerator/
NumberGeneratorContract
RandomNumberGenerator
NumberStore/
NumberStoreContract
DbNumberStore
Ma sembra un po 'strano, dover chiamare qualcosa a store
per archiviarlo, se lo stesso repository significa davvero un luogo in cui archiviare le cose.
Sto facendo un uso improprio del pattern del repository?