Originariamente inviato da sicula83
La classe dovrà essere immutabile, per cui una volta inseriti gli elementi e ordinato l'insieme, quest'ultimo non potrà più essere modificato(utilizzare un oggetto builder a tale scopo).
Originariamente inviato da valia
partiamo da cosa intende il tuo prof per oggetto builder??
Per quello che posso dedurre dal testo, si dovrebbe intendere il design pattern "builder" o perlomeno anche solo una sua "variante".

E una variante semplice/tipica per inizializzare oggetti "immutabili" in genere prevede di definire una nested class all'interno della classe di questi oggetti.

Scenario tipico: una classe per oggetti immutabili che ha molte proprietà di cui spesso solo alcune devono essere inizializzate. Invece di avere tonnellate di costruttori leggermente differenti ognuno con un parametro in più (sono detti "costruttori telescopici"), si usa una nested class che fa da builder. E in genere i metodi del builder permettono di sfruttare il "method chaining".

Esempio: classe Persona "immutabile".

codice:
Persona p1 = new Persona.Builder().nome("Mario").cognome("Rossi").eta(25).build();

Persona p2 = new Persona.Builder().nome("Giacomo").cognome("Verdi").figli(3).codiceFiscale("xxxx").build();