hell0w0rd
@hell0w0rd
Просто разработчик

Как правильно писать функции с префиксом get?

Допустим у нас есть класс, один из его методов — получение содержимого файла, функция приватная, значит сохранить можно только в объект, напрашиваются две реализации — используя return или сразу запись в поле класса. Какой из вариантов лучше и почему?

PS получение содержимого файла — это лишь пример.
  • Вопрос задан
  • 3566 просмотров
Решения вопроса 1
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;
    }
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
xanep
@xanep
У вас подход к разработке вывернут наизнанку. Цепочка разработки такая: требования->архитектура->реализация. Вы же из реализации пытаетесь выяснить как «правильно». Это принципиально невозможно. Правильно так, как удовлетворяет требованиям. А требований нет. Поэтому сначала нужно определиться с требованиями к интерфейсу класса, а потом уже делать реализацию (ну а приватный методы — это ни что иное как способ реализации интерфейса).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы