raffaele181188 ha scritto:@spina non voglio affatto che taci, ci mancherebbe...
Innanzitutto premetto che sono daccordo che neongen sulla leggibilità e il metodo .equals(), ma ancora una volta sono opinioni, se i due metodi fossero davvero uguali, allora per quanto mi riguarda la leggibilità è una questione soggettiva, e in quanto tale, non discutibile. Però neongen ci ha fatto notare come i due metodi non sono uguali (magari citaci la fonte neongen).
Per il resto, anche qui è questione di gusti, tu fai esempi di milioni di oggetti di tipo persone. Come ho scritto in un post precedente, tu allochi sempre e comunque milioni di oggetti anche se ne devi usare solo 1. Io invece faccio un casino di test anche se si usano tutte le entry dell'array.
Vuoi sapere come farei io? Innanzitutto sposterei tutti i metodi set nella classe Persona, perchè sono metodi di Persona e non di Rubrica! In questo modo si può settare un nome solo di un oggetto Persona precedentemente allocato. Poi creo la classe Rubrica che usa Persona, e non come array (dato che la funzione principale di una rubrica è fondamentalmente la ricerca, e come sappiamo l'array non si presta bene a questo scopo). Qui, nell'unico metodo che inserisce una persona nella rubrica sceglierei di non fare controlli, ma di dare come prerequisito del metodo il fatto che l'oggetto Persona che si vuole inserire debba essere stato preallocato. Sta a chi usa Rubrica usarla bene!
Infine, se si vuole fare una cosa fatta bene, allora bisognerebbe utilizzare davvero il paradigma ad oggetti e creare interfacce in modo da:
- essere indipendenti dal tipo di oggetto inserito in Rubrica
- essere indipendenti dall'implementazione della rubrica stessa, ovvero dare la possibilità di avere una rubrica con array, una con alberi, una con liste....
La base della programmazione è il riuso, basta pensare in questo modo e il progetto esce sempre carino! Però forse ci vuole un pò troppo tempo per pensare

.
Spina