Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Внутренний класс в отдельный файл .java

1.9K
22 апреля 2009 года
Goblin
55 / / 02.03.2004
Есть ли способ поместить внутренний класс в отдельный файл .java?
49K
22 апреля 2009 года
Enflout
1 / / 22.04.2009
Увы, нет.
Если вынести код внутреннего класса в другой файл, то это уже будет обычный Java-класс, не более...
А можно поинтересоваться, зачем?
Если нужен отдельный файл, то и используйте самостоятельный класс.
Можно, конечно, обманывать себя: создать новый класс, обращаться к внутреннему классу, а оттуда делегировать все запросы к своему новому классу, но вот зачем? =)
1.9K
22 апреля 2009 года
Goblin
55 / / 02.03.2004
Просто много внутренних классов. Файл из-за этого огромЕнный получается.
А создавать отдельный класс - эт конечно можно, но главный и внутренний начинают агрегировать друг друга и выглядит это некрасиво.
5
22 апреля 2009 года
hardcase
4.5K / / 09.08.2005
Цитата: Goblin
Просто много внутренних классов. Файл из-за этого огромЕнный получается.

Гигабайтов 8 небось?:D

3.7K
23 апреля 2009 года
bioflash
169 / / 01.10.2005
А может тогда создать отдельный пеккедж и там все внутренние классы создать в отдельных файлах но без "public", а только главный класс оставить "public".
276
23 апреля 2009 года
Rebbit
1.1K / / 01.08.2005
Цитата: bioflash
А может тогда создать отдельный пеккедж и там все внутренние классы создать в отдельных файлах но без "public", а только главный класс оставить "public".


Я тоже о таком думал. Но если речь идет не о статических подклассах всеровно придется делать явную агрегацыю главного класа в подкласы. Можно для подкласов создать общего родителя в котором и сделать агрегацыю. Также придется явно прописывать геттеры, сеттеры с правом доступа на уровне пекеджа для доступа к приватным полям если такое необходимо. Одним словом красиво всеровно не получится. Стоит ли игра свеч ?
Тем более я понимаю что код уже написан и вносить в него кучу изменений там где раньше за нас трудился компилятор наверно неохота.

3.7K
23 апреля 2009 года
bioflash
169 / / 01.10.2005
Цитата: Rebbit
Одним словом красиво всеровно не получится. Стоит ли игра свеч ?



Все зависит от того - будет ли код еще изменяться или расширяться и насколько часто и широко... Агрегировать не обязательно - все зависит от складности внутренних классов - если там 1-2 метода, то тогда можно и делегировать.
Все относительно в каждой конкретной ситуации и может изменяться по ходу действий и не раз...

1.9K
23 апреля 2009 года
Goblin
55 / / 02.03.2004
Тема ушла в эзотерику.
Внимание! Правильный ответ!

Нужно выносить класс и агрегировать внешний! Потому что Java так делает.
При компиляции внутренний класс становится обычным классом с неявной ссылкой на внешний.
276
23 апреля 2009 года
Rebbit
1.1K / / 01.08.2005
Цитата: Goblin
Тема ушла в эзотерику.
Внимание! Правильный ответ!

Нужно выносить класс и агрегировать внешний! Потому что Java так делает.
При компиляции внутренний класс становится обычным классом с неявной ссылкой на внешний.


Ну ето не новость, я же говорил что много за нас делает компилятор. Только вот одной ссылки на внешний класс мало. Пачитай как внутренний обращается к приватным полям внешнего класса.

355
23 апреля 2009 года
<SCORP>
786 / / 21.10.2006
надо паттерны проектирования читать, когда такие грабли возникают
не все проблемы, конечно, решит, но многие
1.9K
24 апреля 2009 года
Goblin
55 / / 02.03.2004
[QUOTE=<SCORP>;282752]надо паттерны проектирования читать, когда такие грабли возникают
не все проблемы, конечно, решит, но многие[/QUOTE]

Ну и какой же паттерн предлагаете забубенить?
Мне ж наоборот надо, чтоб структура и функциональность остались.
355
24 апреля 2009 года
&lt;SCORP&gt;
786 / / 21.10.2006
я откуда знаю ваши задачи и ваши структуры. посто когда моного всего в одном месте - это нездоровый признак. если это дело написали до Вас, сочувствую! можете забить и писать дальше в таком же стиле. можете взять на себя смелось переписать. Вам решать
63
02 мая 2009 года
Zorkus
2.6K / / 04.11.2006
Лично я отношусь к внутреннем классам в более-менее крупных проектах подозрительно.
Имхо, они хороши бывают или как скрытные реализации (скрытые внутри какой-то библиотеки) public interface, я говорю про обычные статические внутренние классы, либо как _маленькие_ in-place listeners.

Сделайте нормальный классы с паттерном low coupling / high cohesion ;).
Многие мощные и популярные паттерны используют cross-reference. Visotor, for instance...
47K
28 мая 2009 года
xalz
10 / / 28.05.2009
А не проще ли разбить твою прогу на пакеты?
276
28 мая 2009 года
Rebbit
1.1K / / 01.08.2005
Цитата: xalz
А не проще ли разбить твою прогу на пакеты?


Ну и при чем тут пакеты ? Какраз рознести внутренние классы по пакетах - только усложнить себе жызнь и наделать дыр в интерфейсах.

502
29 мая 2009 года
Jail
550 / / 30.01.2007
Помоему вы пытаетесь сделать "что-то то, сам не пойму что".
Резон использования внутренних классов описан даж в любой более-менее нормальной литературе. Взять к примеру выкладку из Java Tutorials ->
Цитата:
"Why Use Nested Classes?
There are several compelling reasons for using nested classes, among them:
It is a way of logically grouping classes that are only used in one place.
It increases encapsulation.
Nested classes can lead to more readable and maintainable code."


Внутренние классы хороши, когда вы понимаете зачем они вам и зачем их можно и нужно использовать.
Разбиение на пакеджи строится на основе логики приложения, причем тут разнесение внутренних классов????

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог