Java inner classes

Все, что вы хотели знать о программизме, но боялись спросить.
Ответить
Аватара пользователя
Mel'nik
Завсегдатай
Сообщения: 407
Зарегистрирован: 22 май 2007, 19:09
Откуда: Burnaby

Java inner classes

Сообщение Mel'nik »

Вот сижу тут и думаю, Inner classes - зло или не очень? Просто нашел тут у нас 3500 строк кода с 17!!! иннер классами и одним енамом внутри. Какие будут мнения аудитории?
Аватара пользователя
Весенняя
Завсегдатай
Сообщения: 286
Зарегистрирован: 10 окт 2008, 21:15

Re: Java inner classes

Сообщение Весенняя »

Почему зло? Не зло. И удобно иногда. А 3500 строк -- это зло :-)
Аватара пользователя
Marmot
Графоман
Сообщения: 39293
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Caulfeild
Контактная информация:

Re: Java inner classes

Сообщение Marmot »

Mel'nik писал(а):Вот сижу тут и думаю, Inner classes - зло или не очень? Просто нашел тут у нас 3500 строк кода с 17!!! иннер классами и одним енамом внутри. Какие будут мнения аудитории?
Нормально, если по делу, хорошо читается и понятно, что делает :)
Короче, как и любая другая языковая особенность...
Аватара пользователя
Проф. Преображенский
Графоман
Сообщения: 20276
Зарегистрирован: 08 ноя 2006, 11:10

Re: Java inner classes

Сообщение Проф. Преображенский »

Считается так:
Non-static nested classes (inner classes) have access to other members of the enclosing class, even if they are declared private.
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.
Ну а как на самом деле - депенс.
Аватара пользователя
Дима
Маньяк
Сообщения: 1455
Зарегистрирован: 15 авг 2006, 10:21
Откуда: Минск->Vancouver->Victoria

Re: Java inner classes

Сообщение Дима »

Теоретически могу себе представить об'ект, у которого есть 17 достаточно уникальных свойств, которые никому больше не нужны ;) На практике же думаю, что это издержки плохого дизайна. Может, попросим код ? :)
Аватара пользователя
Mel'nik
Завсегдатай
Сообщения: 407
Зарегистрирован: 22 май 2007, 19:09
Откуда: Burnaby

Re: Java inner classes

Сообщение Mel'nik »

Дима писал(а):. Может, попросим код ? :)
Да я бы и рад, но по бумажке неположено. Просто млин 17 классов это уже маленький пакедж. Уже не говоря о том что юнит тест под ету штуку ой как непросто писать. А дизайн там да, просто улетный :D
Аватара пользователя
Marmot
Графоман
Сообщения: 39293
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Caulfeild
Контактная информация:

Re: Java inner classes

Сообщение Marmot »

Mel'nik писал(а):
Дима писал(а):. Может, попросим код ? :)
Да я бы и рад, но по бумажке неположено. Просто млин 17 классов это уже маленький пакедж. Уже не говоря о том что юнит тест под ету штуку ой как непросто писать. А дизайн там да, просто улетный :D
Ну классы классам рознь, у меня был случай: писалось что-то вроде FSM, внутре была куча (>20) inner Runnables возвращаемых для запуска в thread pool-e...
Хотя каждый из этих Runnables просто дергал соответсвующий метод внешнего класса...
Так что, как я и сказал, все зависит от конкретного кода, абстрактные рассуждения о вреде или полезности - не катят...
Ответить