@THorizon

Зачем нужны аксессоры для членов класса если эти члены можно делать публичными?

Зачем нужны аксессоры для членов класса если эти члены можно делать публичными?
  • Вопрос задан
  • 1618 просмотров
Решения вопроса 1
gbg
@gbg Куратор тега C++
Любые ответы на любые вопросы
Это подрывает инкапсуляцию, превращая класс в проходной двор. Подробности у Голуба, в "Веревке достаточной длины..."

Кратко - разработчики класса теряют контроль над его консистентностью.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@bromzh
Drugs-driven development
Используются они не совсем для инкапсуляции, ведь аксессоры её как бы нарушают.

Используют их, чтобы была возможность запихнуть в аксессоры дополнительную логику (например, логгирование, валидация и прочие штуки), не переписывая весь код. Для доступа к полям везде пишешь setField/getField, и при необходимости, логику добавляешь в эти методы. Классы, использующие поля не меняются, а вот поведение может меняться.
Если же поля константные/статические, то нет особого смысла делать их private, пиши public/protected и не парься.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы