Частные методы получения не нарушают инкапсуляцию. Это просто чепуха.
Я не выражаю здесь мнения. Фактом является то, что закрытый метод Java может быть вызван только в пределах класса, который его объявляет. Это находится за границей инкапсуляции.
Либо вы неправильно прочитали пример вопроса и ответа OCP, либо они допустили ошибку.
Теперь может случиться так, что они пыталисьСпросите, был ли пример класса примером хорошей инкапсуляции или, в более общем смысле, хорошего дизайна ОО.
ОБНОВЛЕНИЕ
Просмотр кода примераТрудно сказать так или иначе. Слишком нереально судить. (Код буквально бесполезен, но если мы не знаем, что было его предназначенным , мы не можем назвать этот плохой дизайн.)
Другой ответ, похоже, состоит в том, чточастные добытчики бесполезны. Я не согласен. Тем более, что получатель может делать другие вещи, кроме простого возврата значения. Учтите это:
private synchronized void setBalance(int newBalance) {
this.balance = newBalance;
}
private synchronized int getBalance() {
return this.balance;
}
Это гарантирует, что вызывающая сторона увидит текущее значение поля баланса, даже если оно было только что обновлено другим потоком. Конечно, мы можем сделать это другими способами, но этот способ хорош разделение обязанностей .
И есть другое, что частный добытчик мог бы законно сделать.