Java: не создавайте тяжёлые объекты раньше времени
Java: не создавайте тяжёлые объекты раньше времени Если объект дорогой в создании, но нужен только в редких сценариях, eager initialization может зря тратить время и память. Вместо этого используйте lazy initialization: private HeavyAnalyzer analyzer; private HeavyAnalyzer analyzer() { if (analyzer == null) { analyzer = new HeavyAnalyzer(); } return analyzer; } Так HeavyAnalyzer создастся только при первом реальном обращении. Где особенно полезно: - кэши; - API-клиенты; - тяжёлая конфигурация; - анализаторы; - объекты с дорогой инициализацией. Для более чистого кода можно использовать Supplier, holder pattern или современные lazy-механизмы Java. Если доступ идёт из нескольких потоков, простая проверка if (analyzer == null) уже недостаточна - нужна потокобезопасная реализация. Java Библиотека | Мы в Телеграм