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

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

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

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

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