Страница 1 из 1

Java inner classes

Добавлено: 28 апр 2010, 14:31
Mel'nik
Вот сижу тут и думаю, Inner classes - зло или не очень? Просто нашел тут у нас 3500 строк кода с 17!!! иннер классами и одним енамом внутри. Какие будут мнения аудитории?

Re: Java inner classes

Добавлено: 28 апр 2010, 20:36
Весенняя
Почему зло? Не зло. И удобно иногда. А 3500 строк -- это зло :-)

Re: Java inner classes

Добавлено: 28 апр 2010, 21:37
Marmot
Mel'nik писал(а):Вот сижу тут и думаю, Inner classes - зло или не очень? Просто нашел тут у нас 3500 строк кода с 17!!! иннер классами и одним енамом внутри. Какие будут мнения аудитории?
Нормально, если по делу, хорошо читается и понятно, что делает :)
Короче, как и любая другая языковая особенность...

Re: Java inner classes

Добавлено: 28 апр 2010, 23:40
Проф. Преображенский
Считается так:
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.
Ну а как на самом деле - депенс.

Re: Java inner classes

Добавлено: 28 апр 2010, 23:52
Дима
Теоретически могу себе представить об'ект, у которого есть 17 достаточно уникальных свойств, которые никому больше не нужны ;) На практике же думаю, что это издержки плохого дизайна. Может, попросим код ? :)

Re: Java inner classes

Добавлено: 29 апр 2010, 08:33
Mel'nik
Дима писал(а):. Может, попросим код ? :)
Да я бы и рад, но по бумажке неположено. Просто млин 17 классов это уже маленький пакедж. Уже не говоря о том что юнит тест под ету штуку ой как непросто писать. А дизайн там да, просто улетный :D

Re: Java inner classes

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