2009-12-12 2 views
5

Всюду по Интернету люди говорят, что вам следует избегать использования операторов ярлыков в java. Тем не менее, я считаю их очень полезными в некоторых случаях, а именно вложенными циклами.
Я не могу найти удовлетворительные ответы, почему бы им не использовать их. Я думаю, что альтернативы ярлыкам часто уменьшают либо читаемость, либо производительность, либо и то, и другое.Почему я должен избегать использования выражений Java Label?

Итак, что делает помеченные сообщения о разрыве и продолжении так плохо?

+0

Кажется, это дубликат. Check this sateesh

+0

http://stackoverflow.com/questions/46496/ –

+0

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

ответ

9

Этикетки идеально подходят, чтобы вырваться из вложенных циклов.

 

PS: лично, я хотел бы предложить (и я в соответствии с Кентом Беком по этому вопросу см его implementation patterns книгу), чтобы поместить вложенные циклы в отдельный метод, а затем выйти с return но это навлечет на меня гнев «людей с единым возвратом». Интернет, о, интернет.

+2

+1 за хорошие советы и особенно за презрение к религиозной бессмыслице. –

1

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

0

Не нужно избегать ярлыков, пока метод выполняет только одну вещь, только одно и делает это хорошо.

Однако, если есть необходимость в маркированных перерывах и заявлениях о продолжении, просто выполните быструю проверку, если метод все еще достаточно сцеплен.

1

Наиболее распространенный аргумент в том, что их трудно интерпретировать для начинающих. Другим аргументом является то, что (слишком много) вложенных циклов считаются плохой практикой; другими словами, когда вы видите метку, то есть почти определенный вложенный цикл, и это делает ярлык таким образом неявным. Общей практикой является то, что вложенные циклы реорганизуются в метод. Это должно улучшить ремонтопригодность и другие подобные вещи. Однако, если вложенный цикл не делает ничего другого, кроме очевидной вещи, всего в нескольких строках кода, то это, на мой взгляд, совершенно доступно.

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