Java / Android: анонимные локальные классы против именованных классов

Я хотел бы спросить, какова хорошая практика использования анонимных классов по сравнению с именованными внутренними классами?

Я пишу приложение для Android, которое включает в себя множество элементов пользовательского интерфейса (кнопки, текстовые поля и т. Д.). Для многих из них мне нужны какие-то слушатели, поэтому вonCreate приложения у меня есть куча довольно небольших анонимных классов, таких как:

someButton.setOnClickListener(
    new View.OnClickListener() {
        public void onClick(View v) {
            // do something...
        }
    }
);

Каждый из таких анонимных классов имеет размер 5-20 строк - достаточно маленький и подходит для рекомендаций отJava ™ в двух словах книга:

В общем, вы должны рассмотреть возможность использования анонимного класса вместо локального класса, если:

У класса очень короткое тело.Нужен только один экземпляр класса.Класс используется сразу после его определения.Название класса не делает ваш код легче для понимания.

Но проблема, IMO, в том, чтоonCreate становится достаточно большим, и код становится более сложным для чтения и понимания, если быстро взглянуть на него. Это все еще легко понять, но просто слишком велико.

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