Ho una lista di IReader
che ho letto all'inizio del mio programma. In seguito ho bisogno di ReaderFactory
per ottenere IReader
appropriato in base a Extensions
che può utilizzare. Il problema è che la fabbrica deve conoscere i lettori disponibili. Quindi ho due opzioni:
- Rendi statico
ReaderFactory
con il metodostatic Get(string extension)
estatic Init(IEnumerable<IReader> readers)
quale verrebbe chiamato da qualche parte nella mia classe iniziale. - Crea
IReaderFactory
con costruttore eprivate IEnumerable<IReader> _readers
e crea un'istanza di questo e passa tramiteDependency Injection
.
La mia domanda è quale useresti in questa particolare situazione? Forse c'è anche una terza opzione che non conosco?