The factory component can instantiate normal and Singleton classes, allowing the user to pass to the class' __construct or getInstance methods arguments (as an array) if desired.