352 читали · 2 года назад
Java. Каков порядок вызова конструкторов и блоков инициализации с учётом иерархии классов?
В Java порядок вызова конструкторов и блоков инициализации в классе и его иерархии определяется следующим образом: Parent static block(s) → Child static block(s) → Grandchild static block(s) → Parent non-static block(s) → Parent constructor → → Child non-static block(s) → Child constructor → → Grandchild non-static block(s) → Grandchild constructor Например, рассмотрим следующий код: class Base { static { System.out.println("Статический блок инициализации базового класса"); } Base() { System...
3 дня назад
Builder Pattern в Java
Поговорим о ещё одном важном шаблоне проектирования — Builder Pattern (паттерн «Строитель»). Он идеально подходит, когда вы создаёте сложные объекты с множеством опциональных параметров. Забудьте про конструкторы с 10 аргументами! Builder придёт на помощь. Разберём: Builder Pattern — это порождающий шаблон проектирования, который позволяет пошагово создавать сложные объекты. Он особенно полезен, когда: Представим, что у нас есть класс Laptop: Если мы будем создавать конструкторы для всех комбинаций: Это кошмар поддержки кода! Перепишем Laptop с использованием Builder...