Ответы пользователя по тегу ООП
  • Как правильно писать функции с префиксом get?

    serso
    @serso
    Не очень понятно, что это за объект. Допустим, наш объект — класс приложения. При открытие дополнительного окна нужно прочитать большой файл, например, таблицу 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;
        }
    }
    
    Ответ написан
  • Как глобально хранить объект?

    serso
    @serso
    Если это утилитные методы (сортировка, форматирование и т.д.), то нормальная практика — делать их статичными.
    Ответ написан
  • Как пофиксить баг при работе с несколькими окнами? Java Swing?

    serso
    @serso
    Window синглетоном по дизайну?
    Помимо Window.getInstance() можно написать Window.getBareInstance(), внутри которого дёграть Window.getInstance() и зачищать данные от предидущего «окна», включая менюшки, контент и т.д.

    Ответ на вопрос: менюшки остаются поотому-что вы их сами добваляете в ОДИН экземпляр класса Window (внутри конструкторов FirstWindow и SecondWindow) и не очищаете. Выход — либо зачищать объект window по выходу из вью (в вашем случае по переходу между окнами), либо по входу в новую вью (то что я написал выше)
    Ответ написан
    2 комментария