В Scala я вижу такую функцию, как объектно-приватная переменная. Из моего не очень богатого Java-фона я научился закрывать все (сделать его приватным) и открывать (предоставлять доступ к ним), если это необходимо. Scala вводит еще более строгий модификатор доступа. Должен ли я всегда использовать его по умолчанию? Или я должен использовать его только в некоторых конкретных случаях, когда мне нужно явно ограничить изменение значения поля даже для объектов того же класса? Другими словами, как выбрать
class Dummy {
private var name = "default name"
}
class Dummy {
private[this] var name = "default name"
}
Второй более строгий, и мне он нравится, но должен ли я всегда использовать его или только если у меня есть веская причина?
EDITED: Как я вижу здесь private [это] - это всего лишь какой-то подзаголовок, и вместо этого я могу использовать другие модификаторы: "package, class или одноэлементный объект". Поэтому я оставлю это для некоторого особого случая.