Diciamo che ho quattro classi A, B, C, D.
Ciascuna di queste classi contiene un oggetto Tree. Questo oggetto tree deve essere costruito in base alle informazioni memorizzate nei file f_A, f_B, f_C, f_D, rispettivamente per le classi A, B, C, D.
Quindi l'albero della classe A deve essere costruito secondo f_A.
Ora penso che non sia una buona idea per la classe Tree fare l'I / O dei file.
Un'opzione sarebbe che Tree avesse una funzione buildFromString (String s) che prende il contenuto di un file come una stringa e si costruisce da solo.
Ma ancora una volta, non penso che Tree debba eseguire alcuna elaborazione String.
Un'alternativa sarebbe che per ogni classe A, B, C, D abbiamo una Tree Builder Class, che prende un oggetto Tree come parametro, legge il file corrispondente e costruisce l'albero.
Forse un modello di fabbrica sarebbe d'aiuto, ma non vedo come utilizzarlo in questo contesto.
Ma questo introduce molte nuove classi.
Quale sarebbe un modo pulito di costruire alberi dai file soggetti a quale classe vengono istanziati?