Задать вопрос
@beduin01

Всегда ли нужно писать геттеры?

Когда лучше обращаться к полям класса напрямую?
  • Вопрос задан
  • 434 просмотра
Подписаться 3 Простой 5 комментариев
Пригласить эксперта
Ответы на вопрос 3
saboteur_kiev
@saboteur_kiev
software engineer
Читайте что такое инкапсуляция и зачем она нужна.

Внутри класса обращайтесь напрямую. Снаружи класса - принято обращаться через геттеры/сеттеры - чтобы если вдруг вы будете что-то внутри класса менять, вам не нужно было искать где используется ваш класс и как исправить все эти вызовы - вы просто поправите геттер/сеттер в вашем классе.
Ответ написан
@nApoBo3
ИМХО сейчас данная "концепция" уже устарела и не очень актуальна.
Во-первых сейчас не смешивают модели и логику в одном классе, по этому в большинстве случаев геттеры и сеттеры остаются пустыми.
Во-вторых рефлексия запросто инкапсуляцию нарушает.
В-третьих в ide есть средства рефакторинга которые снимают проблему изменения полей.
Так что скорее это привычка и традиция, я очень редко вижу геттеры и сеттеры с кодом.
Ответ написан
Комментировать
@SaddledSharp
Кодер. Увлекаюсь информационной безопасностью.
Желательно конечно всегда... Это закон инкапсуляции, нежелательно если бы какой то рандомный человек изменил поле в вашем классе. Так что это по вашему усмотрению, когда у мея были маленькие знания языков, я тоже думал - "зачем это ООП? Зачем инкапсуляция вообще бред", а сейчас я понимаю зачем оно. Просто учитесь и в ходе изучения как и я поймёте всё. Ответ на ваш вопрос - надо. Геттеры и сеттеры всегда нужны. Это как ловить ошибки. (try, except)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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