Все ли поля класса нужно инкапсулировать?

Здравствуйте.
Вопрос собственно весь в заголовке.
Допустим есть класс Player (псевдокод):
class Player {
    string name;
    int cash;
    int level;
}

Я должен для каждого поля создать функции set и get типа .getCash(), setName() и т. д., даже если никакие дополнительные действия не совершаются?
  • Вопрос задан
  • 92 просмотра
Решения вопроса 2
HemulGM
@HemulGM
Delphi Developer, сис. админ
Зачем?
Ответ написан
YuriyVorobyov1333
@YuriyVorobyov1333
Software Developer (Java/Node.js/Angular)
Вопрос сложный, и зависит скорее от конкретной задачи, от стиля организации/проекта и других факторов. Начнем с того, что есть приватные и публичные поля, если публичные можно свести к гетерам и сетерам, то для приватных, это не требуется, разве что, чтобы снизить ошибки со стороны разработки, но читать полотно гетов и сетов тоже не особо удобно
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
sarapinit
@sarapinit
Точу водой камень
Зависит от того как будет использоваться класс.
Однв из целей инкапсуляции снижение вероятности что класс/модуль/функция будет использована неверно. В предельном случае апи класса должно позволять только верное использование. Но так не всегда язык позволяет это сделать.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы