I think I understand what a factory class does, I'm just unsure when I'd use it. For example, I have this is my bootstrap:

PHP Code:
 * Generic objects
$clean                 = new Helpers\Clean();
$page                 = new Helpers\Page();
$email                 = new Helpers\Email();
$date                 = new Helpers\Date();
$seconds             = new Helpers\Seconds();
$image                 = new Files\Image();

 * Database connection
if($settings['DEV']) {

$db = new Database\Connection($settings['DEV_DATABASE_HOST'],
else {

$db = new Database\Connection($settings['LIVE_DATABASE_HOST'],


 * Objects that require dependencies
$generate             = new Helpers\Generate($clean);
$format             = new Helpers\Format($clean);
$validateServer        = new Helpers\ValidateServer($clean$date);
$validateClient        = new Helpers\ValidateClient($clean);
$generate            = new Helpers\Generate($clean);
$query                 = new Database\Query($db$clean);
$file                 = new Files\File($clean);
$upload                 = new Files\Upload($file$generate);
$search                = new Content\Search($db$clean); 
If I understand factory classes they create a bunch of objects. But why not just have code like the above?

Finally, I have just found out about ReflectionClass. Does this have any relevance to factory classes or is it just for debugging?