Prova ad approfondire questo:

http://it.wikipedia.org/wiki/Factory_method