Ho una funzione membro della classe che genera un elenco di grandi dimensioni e la inserisce in una variabile membro privata, in modo che sia accessibile tramite un getter. La generazione di questa lista è un processo piuttosto intenso (nei miei test è solo un secondo, ma con dataset più grandi mi aspetto che ci vorrà molto più tempo), che comporta un sacco di ricorsione e andare avanti e indietro su sottoliste. Questa funzione è pubblica in modo che l'elenco possa essere rigenerato in qualsiasi momento, indipendentemente dal fatto che l'inizializzazione "naturale" si sia verificata o meno.
Dato tutto questo, è meglio impostare le cose in modo che la lista sia generata quando l'oggetto è costruito, o per far sì che generi la lista quando viene chiamata la funzione getter se la lista non è ancora stata generata?
Inoltre, dovrei aggiungere che assumiamo che l'elenco sia aggiornato e non debba essere modificato finché l'utente non ci dice specificatamente di aggiornarlo.