Показать сообщение отдельно
  #10 (permalink)  
Старый 05.05.2012, 09:41
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от DreamTheater
Я также слышал мнение что одним знаком подчеркивания обозначаются protected свойства, а двумя - private.
Нет смысла private обозначать двумя подчёркиваниями. Смысл private не в том, чтобы скрыть свойство от потомков класса, а в том, чтобы потомки класса его случайно не испортили (если хотят специально испортить -- пожалуйста). Т.е. хотите вы сделать приватное свойство foo, соглашение должно быть таким, чтобы вы не задумывались, а есть ли в родительском классе такое же приватное свойство, не затрётся ли оно случайно.

В питоне, например, к именам свойств, начинающимся на два подчёркивания, добавляется префикс имени класса. В результате если Class2 наследует Class1 и в обоих классах есть свойство __foo, то в Class1 она в результате будет называться Class1__foo, а в Class2 -- Class2__foo.

Я в своём коде придерживаюсь того же правила для приватных свойств, только точка заменяется на подчёркивание. Например у класса Foo.BarBaz приватное свойство будет иметь вид Foo_BarBaz__privateVar. Это избыточно, это дольше писать, но это никогда не взорвёт соседние классы.
Ответить с цитированием