Io sono dell'opinione che una classe debba gestirdati. Ciò vuol dire che come questi dati vengono passati non è compito della classe. Che i dati provengano da un form, da un url, da una query ad un db o da altro non deve interessare ala classe. Ciò vuol dire che non trovo corretto inserire all'interno di una classe un metodo che stampi un form. Al massimo puoi creare un'altra casse che lo faccia (quindi stampi gli input, le textarea ecc.).

Di conseguenza la risposta ala tua domanda è affermativa, devi spostare il metodo add().

Personalmente uso un template engine per gestire tutta la grafica e ciò che ne deriva (form, tabele, immagini, ecc.) e trovo che sia un ttimo metodo per separare i cntenuti dall'impaginazione anche se forse un po' più lento ma se si usa un motore come sarty che compila il codice alla fine ci si ritrova con il avro semplificato. Io ti consiglio di dargli uno sguardo, basta che cerchi smarty su google! Ciao!