mi sembra un giro eccessivo, non che sia sbagliato.
Non avrei definito un oggetto Phone per il telefono, basta una stringa e considera che in genere ne hai al max 2, quindi 2 campi telCasa e cell in genere vanno più che bene.
A questo punto perché non estendere il discorso a mailAddress, indirizzo di residenza ecc.
Va bene modellizzare oggetti, ma non bisogna esagerare!!!!
Ti ripeto però che è una osservazione personale, non è sbagliato, ma gli estremismi sono difetti e in più tendo a mantenere una logica coerente per tutto.

Aggiungerei un costruttore vuoto e/o con meno campi.
In genere se una classe ha 20 campi, non sempre li avrai(e sono necessari) tutti e 20.
Individua quelli di cui non puoi fare a meno, quelli vanno nel costruttore, gli altri usa getter/setter.
Infine ricorda che se la tua classe modellizza un bean, costruttore vuoto·