| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Обращение к переменным |
| Автор: Antropoid 16.12.2006, 12:01 | ||||
| Какой код корректнее? I
II
В коде I обращаемся к переменной str так: MyClass.str, в коде II так - MyClass.getInstance().str. Какой из этих способов доступа предпочтительнее? |
| Автор: powerOn 16.12.2006, 12:49 | ||||
Если str меняться не должна, то так потянет:
Смысл второго примера я не понял. Можно еще так:
|
| Автор: Antropoid 16.12.2006, 13:02 |
Как другим классам обращаться к переменным класса MyClаss, не имея объекта не него? |
| Автор: y3u 16.12.2006, 14:52 |
| не совсем корректный пример... строка она вроде как считается имьютабл, а если еще вспомнить про пул строк, то тогда что так что эдак пофигу... для строк лияно я использую public static final филды... если объекты изменяемые - тогда надо подумать как они буду изменяться и сколько экземпляров класса должно быть, от этого и плясать... |
| Автор: Antropoid 17.12.2006, 22:38 |
Ну разве нормально из других классов обращаться к полям класса посредством MyClass.str, если объект класса MyClass будет единственным в программе? С другой стороны такое обращение облегчает чтение кода. Реализация же шаблона синглетон для доступа к переменным - громоздка... |
| Автор: 0000 19.12.2006, 12:12 |
| singleton тут не нужен...если ты хочешь дать доступ всем к строке - оставь static... второй код абсолютно некорректен - ты там возвращаешь класс...но он у тебя не одиночка..смысла в нем нет |
| Автор: Antropoid 20.12.2006, 22:07 | ||
Извиняюсь, второй пример звучит так:
Надеюсь теперь ответы изменятся... |
| Автор: powerOn 20.12.2006, 22:42 |
А когда конструктор будет вызван? |
| Автор: y3u 20.12.2006, 22:53 | ||
ты наверное имел в виду примерно следующее... но это не всегда правильно
ты, во-первых, реши сначала, зачем тебе синглтон... во-вторых можно почитать про его реализации вразных случаях... http://skipy.dev.juga.ru/technics/singleton.html а касательно статических полей все уже написали, если неизменяемый филд, то public static final, если изменяемый, то через объект и через паблик геттер... |