2012-06-17 4 views
0

У меня есть класс под названием Огнемет, который, естественно, имеет свои собственные боеприпасы, отличные от других видов оружия. Должны ли эти боеприпасы быть вложенным классом среди огнеметов, поскольку только огнемет когда-либо будет использовать этот класс?Java-правильное использование вложенного класса?

+4

Лично я не уверен, что вложенные классы всегда были хорошей идеей. Анонимные классы для обработчиков событий - обязательно. Несколько классов в одном модуле: да. Вложенные классы: я бы использовал наследование или состав, прежде чем использовать гнездование. IMHO ... – paulsm4

+1

@ paulsm4 - На самом деле решение использовать вложенные классы не зависит от использования наследования или композиции и т. Д. –

ответ

3

Я собираюсь удалить мой комментарий и сделать этот ответ:

Если это боеприпасы быть вложенным классом в огнемет

Я не думаю, причина в том, что боеприпасы также будут взаимодействовать с мишенью, и поэтому ее воздействие будет ощущаться сверх того, что у него есть. Обычно я резервирую внутренние классы для «вспомогательных» классов, которые используются только внутри внешнего класса.

0

У вас, вероятно, не должно быть класса вообще. Как правило, вы хотите, чтобы такие вещи были доступны для написания сценариев, для облегчения разработки и модификации. Вы должны заменить его общим классом боеприпасов, который считывает значения из файла данных, чтобы настроить поведение, если у вас нет по-настоящему уважительной причины. В общем, распространенной ошибкой среди начинающих Java является создание классов для всего, нужно ли им это или нет.

Смежные вопросы