The main purpose of Factory method is to create objects. There will be
one product instant creation function (Factory Method) in the abstract
class(Creator), which can be overrided by its subclasses(Concrete
Creator) and thus products can be specified in subclasses.
reference:
http://gsraj.tripod.com/design/creational/factory/factory.html
http://en.wikipedia.org/wiki/Factory_method_pattern
http://www.developer.com/java/other/article.php/626001
http://www.javacamp.org/designPattern/factory.html