Ciao a tutti, qualcuno sa spiegarmi la differenza fra questa implementazione col gestore degli eventi dentro la classe Class1

codice:
Class1 extends JFrame
{
  Class1()
  {
      ....

      JButton bottone1 = new JButton();
      bottone.addActionListener(new Ascoltatore());

      .....
  }

  class Asoltatore()
  {
      ....
  }

}
e questa in cui il gestore e fuori dalla classe Class1?

codice:
Class1 extends JFrame
{
  Class1()
  {
      ....

      JButton bottone1 = new JButton();
      bottone.addActionListener(new Ascoltatore());

      .....
  }
}

class Asoltatore()
{
     ....
}