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 .