Мне нравится Ctrl + M , Ctrl + M . Расшириться/свернуть текущий блок кода.
Я использую замыкания только там, где они мне нужны, т.е. по умолчанию использую методы. Я делаю это потому, что
методы проще замыканий. Замыкания имеют делегата, владельца, сохраняющего доступ к переменным, которые были в их локальной области при создании (то, что вы называете «свободными переменными»). По умолчанию вызовы методов внутри замыкания разрешаются:
Но этот порядок может быть изменен во время выполнения, и делегат замыкания также может быть изменен на любой объект.
Все эти факторы вместе взятые могут сделать код, использующий замыкания, очень сложным для анализа, поэтому, если вам не нужна эта сложность, я предпочитаю устранить ее, используя вместо этого метод.
. Я понятия не имею, защищаю ли я практику (использовать методы по умолчанию и закрывать только тогда, когда они вам нужны) широко считается «лучшей практикой», поэтому мне любопытно услышать, что думают другие.
Хотя все, что говорит Дон, правда, я не знаю, что все это так важно. Вы можете отменить делегата закрытия, которое может изменить исполнение, но если вы не передаете закрытие (что вы все равно не можете сделать с помощью метода), вам на самом деле не нужно беспокоиться о том, что что-то из этого произойдет. Играть с делегатом - это возможность, а не ответственность.
Что касается возможного падения производительности из файлов дополнительных классов, почему вы используете Groovy, если вы так беспокоитесь о производительности?
По моему мнению, на самом деле это не имеет значения. Если в вашей команде много людей, которые являются старыми разработчиками Java, им наверняка не понравится, когда вы будете использовать замыкания, где это сделает метод. С другой стороны, кто-то, кто свободно владеет Groovy, будет раздражен, если вы засоряете все методы, когда закрытие имеет больший смысл.
tl;dr - Нет никакого жесткого и быстрого правила, вместо этого вам следует хорошо разбираться в коде с учетом его читабельности.
.