| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Религиозные войны > Для чего нужны модификаторы доступа? |
| Автор: 502 10.11.2011, 13:17 |
| Ну вот для чего, почему не сделать так: все свойства private, все методы public? |
| Автор: LSD 10.11.2011, 13:42 |
| Без приватных методов тяжело писать простой и читаемый код. Насчет полей - можно обойтись и без публичных, но иногда они бывают удобны. Пример:есть некий метод который проводит вычисления и возвращает результат. Вычисления достаточно сложные и валидация входных параметров тоже. По хорошему тут надо сделать 2 метода: один проверяет входные параметры, второй делает вычисления. |
| Автор: LSD 10.11.2011, 15:24 |
Не все языки поддерживают проперти. Публичные константы удобней и проще, чем публичные аксесоры. Если нужно реализовать простой DTO по типу структуры, то простые публичные свойства проще и без лишнего оверхеда. (это не значит, что "нельзя обойтись без", это значит что в данном конкретном случае удобней/проще использовать) Вызов метода выполняющего вычисления с неправильными входными параметрами может привести объект в неконсистеное состояние. |
| Автор: 502 10.11.2011, 16:24 | ||
ну, это уже проблемма программиста что он не проверяет данные + если второй метод некорректно работает без первого, то второй сам должен вызвать первый |
| Автор: LSD 10.11.2011, 16:45 | ||
Перечитай внимательно, то что я написал. |
| Автор: rodnover 11.11.2011, 08:14 |
| Обычное разграничение доступа. Как в том же газпроме. Максимум, что пользователи знают - это как платить за газ (public), филиалы газпрома основополагаются на описанные методы главного офиса (protected), но все остальные о них ничего не знают. А уж в главном офисе используют свои внутренние процедуры, о которых даже филиалам не говорят (private). Можно и без этого, но зачем? Всему свое место. |
| Автор: k0rvin 11.11.2011, 20:50 | ||
насколько я знаю, в SmallTalk так и есть |