![]() |
|
||||||||||
|
|
|
|||||
|
Разговаривал я тут с одним хорошим java проггером, его постулат был - никаких публичных переменных, только геттеры и сеттеры.
Собственно хотелось бы обсудить данный вопрос, кто как считает? Понятно , что с точки зрения полиморфа - только геттеры и сеттеры, с другой стороны если интерфейсность не нужны, то можно и пабликами обойтись !? , и третья сторона медали - Если есть инфо-класс содержащий только перменные и их допустим 100 , наверное тяжко будет вчитываться в такой класс с гет-сетами , нежели только с публик... Вообщем как работаете Вы ?
__________________
Марк Tween |
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
В отличии от java у нас публичные переменные и акцессоры носят одно и то же имя, поэтому, если возникает необходимость добавить какие нибудь проверки в сеттер или продиспатчить событие, то это можно сделать в любой момент.
Я не сторонник бездумного раздувания кода и пишу сеттеры только при явной необходимости (но часто они реально нужны) В яве же, нельзя поменять паблик на акцессор без изменения обращений к свойству во всём коде - поэтому описание свойств всегда через акцессоры - оправданы. Разные языки - разные подходы.
__________________
Отряд Котовскага |
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
Да про интерфейсы я как-то пропустил. Если они нужны, то да - используем акцессоры.
__________________
Отряд Котовскага |
|
|||||
|
Цитата:
Цитата:
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Есть еще такая концепция деления классов на "классы" и "типы данных". Классы это то, что меняет данные, а типы данных - это набор данных безо всякой логики, то есть безо всякой обработки, без методов. В этом случае как раз нужно использовать public, но в случае с Классами такое встречается крайне редко: каждый Класс старается "защитить свои инвистиции", свои рабочие данные, и не позволить изменять их извне. Но исключения конечно есть, тот же Point.
Добавлено через 6 минут Цитата:
__________________
Reality.getBounds(this); |
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
Как раз при использовании VO ("типы данных") чаще всего и приходится использовать акцессоры (для диспатча события об изменении)
__________________
Отряд Котовскага |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Нене, ТипыДанных служат для передачи данных (как обычно используется Ректангл и Пойнт для передачи параметров функциям), и ничего диспатчить они не собирались
То, о чем говоришь ты – это уже Модель))
__________________
Reality.getBounds(this); |
|
|||||
|
Banned
Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Часто использую публичные переменные в тех местах, где это не критично. Если сеттер только и делает то, что задает значение переменной, а геттер ее возвращает, то всегда использую просто public переменные где это возможно. К ним и доступ осуществляется быстрее, чем через геттеры.
|
|
|||||
|
Цитата:
Использую акссесоры там, где нужно. Если акссесор не нужен - не использую.
__________________
Тут мужик танцует и поёт про флэш |
![]() |
![]() |
Часовой пояс GMT +4, время: 21:26. |
|
|
« Предыдущая тема | Следующая тема » |
|
|