Не очень понятно, что это за объект. Допустим, наш объект — класс приложения. При открытие дополнительного окна нужно прочитать большой файл, например, таблицу CSV. При этом, понятно, что при старте приложения грузить этот файл не надо (потому как дополнительное окно может и не быть открыто), но в случае когда мы его хотя бы один раз прочитали, читать второй раз уже не хочется. В таком случае можно использовать паттерн lazy loading:
public class Application {
private CsvData csvData = null;
public CsvData getCsvData() {
if ( csvData == null ) {
csvData = readCsvData();
}
return csvData;
}
private CsvData readCsvData() {
// read file from the disk, do not forget about synchronization
// ...
return csvData;
}
}