![]() |
Отказываемся от Public var
Разговаривал я тут с одним хорошим java проггером, его постулат был - никаких публичных переменных, только геттеры и сеттеры.
Собственно хотелось бы обсудить данный вопрос, кто как считает? Понятно , что с точки зрения полиморфа - только геттеры и сеттеры, с другой стороны если интерфейсность не нужны, то можно и пабликами обойтись !? , и третья сторона медали - Если есть инфо-класс содержащий только перменные и их допустим 100 , наверное тяжко будет вчитываться в такой класс с гет-сетами , нежели только с публик... Вообщем как работаете Вы ? |
В отличии от java у нас публичные переменные и акцессоры носят одно и то же имя, поэтому, если возникает необходимость добавить какие нибудь проверки в сеттер или продиспатчить событие, то это можно сделать в любой момент.
Я не сторонник бездумного раздувания кода и пишу сеттеры только при явной необходимости (но часто они реально нужны) В яве же, нельзя поменять паблик на акцессор без изменения обращений к свойству во всём коде - поэтому описание свойств всегда через акцессоры - оправданы. Разные языки - разные подходы. |
Мнение принятно, соглашусь. Хотелось бы услышать еще раздумья
|
Да про интерфейсы я как-то пропустил. Если они нужны, то да - используем акцессоры.
|
Цитата:
Цитата:
|
Есть еще такая концепция деления классов на "классы" и "типы данных". Классы это то, что меняет данные, а типы данных - это набор данных безо всякой логики, то есть безо всякой обработки, без методов. В этом случае как раз нужно использовать public, но в случае с Классами такое встречается крайне редко: каждый Класс старается "защитить свои инвистиции", свои рабочие данные, и не позволить изменять их извне. Но исключения конечно есть, тот же Point.
Добавлено через 6 минут Цитата:
|
Как раз при использовании VO ("типы данных") чаще всего и приходится использовать акцессоры (для диспатча события об изменении)
|
Нене, ТипыДанных служат для передачи данных (как обычно используется Ректангл и Пойнт для передачи параметров функциям), и ничего диспатчить они не собирались :) То, о чем говоришь ты – это уже Модель))
|
Часто использую публичные переменные в тех местах, где это не критично. Если сеттер только и делает то, что задает значение переменной, а геттер ее возвращает, то всегда использую просто public переменные где это возможно. К ним и доступ осуществляется быстрее, чем через геттеры.
|
Цитата:
Код AS3:
|
| Часовой пояс GMT +4, время: 21:21. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.