У Scala я бачу таку особливість, як об'єктно-приватна змінна. Зі свого не дуже багатого Java-фону я навчився закривати все (робити це приватним) та відкривати (надавати аксесуари), якщо потрібно. Scala представляє ще більш суворий модифікатор доступу. Чи слід завжди використовувати його за замовчуванням? Або я повинен використовувати його лише в деяких конкретних випадках, коли мені потрібно чітко обмежити значення зміни поля навіть для об'єктів одного класу? Іншими словами, як мені вибрати між
class Dummy {
private var name = "default name"
}
class Dummy {
private[this] var name = "default name"
}
Друга - більш сувора, і мені це подобається, але чи слід я завжди її використовувати або тільки якщо у мене є вагомі причини?
ВИДАЛЕНО: Як я бачу, тут private[this]
є лише підрозділ, і замість цього this
я можу використовувати інші модифікатори: "пакет, клас або однотонний об'єкт". Тож я залишу це для якогось особливого випадку.