Глоссарий

Инкапсуляция

Инкапсуляция — скрытие внутренних деталей реализации объекта и предоставление контролируемого доступа к ним через публичный интерфейс. Внешний код знает лишь «что» делает объект, но не «как».

Модификаторы доступа

Зачем

Класс может изменить внутреннюю реализацию без влияния на внешний код. Пример: заменили хранение баланса с int на Money VO — внешний код не знает об этом, поскольку обращается только к getBalance().

Геттеры и сеттеры

Не обязательны — это деталь реализации. Дублировать поле $name геттером getName() без причины — нарушение DRY. Открывайте только то, что действительно нужно снаружи.