Osserviamo un semplice esempio: supponiamo di avere tre classi che implementano IPersonRepository
: SQLPersonRepository
, WebPersonRepository
, InMemoryPersonRepository
. Ho anche PersonRepositoryFactory
class che è semplice implementazione di pattern metodo Factory - contiene metodi GetPersonRepository
che hanno enum / string come parametro. Come posso creare un pattern Factory (o, in altre parole, centralizzare la creazione del mio oggetto) quando SQLPersonRepository
ha bisogno di dipendenza per: SQLConnection
o stringa sul percorso del database, WebPersonRepository
ha bisogno di qualche oggetto di impostazioni http e InMemoryPersonRepository
non ha dipendenze? Potrei passarlo in Factory constructor o come parametro method ma sarebbe brutto, sporco e non stampabile, specialmente se avessi più implementazioni IPersonRepository
.