Для проектов приличного размера мне сказали, что когда у вас есть классы, расширяющие JPanels, лучше всего использовать вложенные классы для реализации слушателей. Например, у меня может быть класс FactoryScreen, расширяющий JPanel, и вложенный класс FactoryScreenBrain, реализующий все необходимые слушатели.
Мне никогда не удавалось получить хорошее объяснение конкретных преимуществ или недостатков такой инкапсуляции моих классов, и до сих пор у меня всегда были только классы, которые расширяют JPanel и реализуют слушатели. Может ли кто-нибудь дать мне какое-нибудь руководство по этому поводу?