Allora provo a spiegarmi meglio.
Prendiamo in considerazione il dadabase così strutturato:

codice:
id : (int autoincrement)
nome :
tipo : (cane o gatto)
e facciamo finta che contenga solo Cani e Gatti in modo da semplificare ulteriormente.

Il verso è contenuto nel metodo di ogni oggetto specifico come specificato nel primo post.
Quindi il metodo "verso" del cane stamperà "Bau !" mentre quello del gatto "Miao !".

Il mio problema è che ciclando l'intera tabella degli animali, vorrei richiamare una classe generica (animale) che mi crei invece automaticamente l'istanza specifica corretta in base all'attributo "tipo" contenuto nel database.

Spero di essermi spiegato meglio

PS ad ogni modo sto cercando di capire di più' sul Factory Pattern.
Sembra che sia la soluzione al mio problema, anche se non trovo una fonte con esempi semplici per poterci capire di più.
Soprattutto se poi i vari Prodotti finali creati dal Factory, possano estendere magari una libreria simil ORM semplificata (non Doctrine e company per intenderci ma una ORM semplice di natura "casereccia" ) per poter essere integrata in progetti reali. Ma questo è un altro discorso

Ad ogni modo grazie mille per l'aiuto che mi stai dando.