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

Зачем приватные свойства в классах, если для них созданы гетеры и сеттеры без логики?

Часто сталкиваюсь с тем, что в классе есть приватные свойства и для каждого создан геттер и сеттер без какой либо дополнительной логики.
Для чего это делается? Почему просто не оставить public, раз свойство и так можно и читать и редактировать?
Зачем нужна инкупсуляция ради инкапуляции?
  • Вопрос задан
  • 255 просмотров
Подписаться 1 Простой 7 комментариев
Помогут разобраться в теме Все курсы
  • ProductStar
    Python: навык ООП и функционального программирования
    1 месяц
    Далее
  • Stepik
    Python OOP от Python_Samurai
    2 недели
    Далее
  • Учебный центр IBS
    JVA-I-001 Java: ООП и функциональная парадигма
    1 неделя
    Далее
Пригласить эксперта
Ответы на вопрос 2
Вот хороший ответ.
https://dzone.com/articles/why-should-i-write-gett...
Ответ написан
Комментировать
SerafimArts
@SerafimArts
Senior Notepad Reader
Эту практику, насколько я помню, начали применять в Java, где свойств у классов нет, а есть только поля.

Как следствие, для переопределения логики и упрощения рефакторинга: Удалили одно поле, добавили другое - не ломался публичный интерфейс, т.к. сеттеры/геттеры можно поправить в одном месте, нежели править логику во всех местах, где дёргаются поля.

Если в языке есть свойства, то да, подобное не имеет особого смысла, т.к. сами по себе являются эмуляцией свойств.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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