Только что провел эту дискуссию сегодня с моим коллегой и копался в поисках популярного мнения.
Я согласен с TofuBeer. Если ваш код содержит более 2 строк, он, вероятно, не является одноразовым и может быть когда-нибудь использован повторно. Если вы создаете форму с использованием шаблона MVC, у вас может быть 20 контролируемых элементов на странице, вместо того, чтобы загромождать представление тоннами классов анонимных (черт возьми, ваше представление, вероятно, было создано с использованием GUI-компоновщика, а код был автоматически создан редактирование источника даже не вариант) вы, скорее всего, будете передавать каждый элемент контроллеру. Вы можете вложить внутренние классы в контроллер для обработки каждого интерфейса обработчика / прослушивателя, который требуется вашему представлению. Это очень хорошо организует код, особенно если у вас есть соглашение, что ваш класс обработчика должен быть назван с использованием имени элемента GUI (например, backButtonHandler для backButtonElement). Это очень хорошо сработало для нас, и мы написали инструмент автоматической регистрации (когда вы регистрируете контроллер в представлении, представление ищет внутренние классы, используя имя элемента, и использует их для обработчика каждого именованного элемента). Это было бы невозможно с анонимными классами и делает контроллер более пригодным для повторного использования.
TLDR: если есть сомнения, напишите именованный внутренний класс. Вы никогда не узнаете, захочет ли кто-нибудь повторно использовать ваш код когда-нибудь (если только это не две строки, тогда вам нужно задаться вопросом «запах этого кода?»). Хорошо организованный код имеет гораздо большие преимущества в долгосрочной перспективе, особенно когда ваш проект находится на обслуживании.