2015-03-09 5 views
3

Если у нас есть класс:Kotlin: почему параметры конструктора имеют «внутреннюю» видимость по умолчанию?

class Customer(val customerName: String) { } 

Ее параметр customerName застройщик доступен через getCustomerName() (потому что это также свойство). Если мы хотим ограничить доступ к этому свойству, мы должны объявить его как private.

Поскольку во многих случаях из Java-мира (и если класс не предназначен для класса данных) поля, которые назначаются из параметров конструктора, предназначены для использования в частных/защищенных целях, это похоже на дополнительное усилие, чтобы явно объявить их private в Котлине ,

Кроме того, классы Kotlin по умолчанию окончательные, так почему бы не следовать этому принципу для свойств? Я что-то упускаю?

ответ

5

В нашем опыте, а также из некоторых эмпирических исследований существующих кодовых баз, internal/public видимость лучше всего подходит для свойств.

Кроме того, по умолчанию классы Kotlin являются окончательными, так почему бы не следовать этому принципу для свойств? Я что-то упускаю?

Свойства final по умолчанию, то есть они не могут быть отменены, если вы не предоставите модификатор open явно.

Смежные вопросы