Listener em classe externa

Boa noite, pessoal.

Andei pesquisando sobre como utilizar um listener em uma classe externa para tentar organizar o código e não misturar os componentes com a ação dele, também estou tentando atribuir uma ação específica para cada botão, porém minha busca não foi bem sucedida e apelo ao conhecimento dos colegas aqui. Estou fazendo da seguinte forma:

TesteRadioButton

package interfaceGrafica;

public class TesteButton {

   public static void main(String[] args) {
		
   RadioButton janelaRadio = new RadioButton("Testando JButton", 200, 200);
               janelaRadio.setVisible(true); 	
               
   }

}

Button

package interfaceGrafica;

import java.awt.FlowLayout;

import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JButton;


public class Button extends JFrame {

	public Button (String titulo, int largura, int altura) {
			
		super(titulo);
		
        setLayout( new FlowLayout() );
        setSize(largura, altura);
        setResizable(false);
        setLocationRelativeTo(null); 
        
		JButton botao1 = new JButton("Nome 1"); 
		             botao1.addActionListener( new ButtonEvento().acao1 );
		             
		JButton botao2 = new JButton("Nome 2 ");
		             botao2.addActionListener( new ButtonEvento().acao2 );
		             
		JLabel labelTeste = new JLabel("Label teste");             
		
		/*
		 * Cria um grupo de botões e adiciona os integrantes dele 
		 */
		
		ButtonGroup grupo = new ButtonGroup();
		            grupo.add(botao1);
		            grupo.add(botao2);

		/*
		 * Adiciona os botões e o label no JFrame            
		 */
		            
        this.add(botao1);
        this.add(botao2);
        this.add(labelTeste);
        

	}
	
}

ButtonEvento

package interfaceGrafica;

import java.awt.event.*;
import javax.swing.JOptionPane;

public class ButtonEvento implements ActionListener {
	
   public void actionPerformed(ActionEvent evento) {
   }

   ActionListener acao1 = new ActionListener() {
       public void actionPerformed(ActionEvent evento) {
    	   JOptionPane.showMessageDialog(null, "Acao 1");
       }  
   };

   ActionListener acao2 = new ActionListener() {
       public void actionPerformed(ActionEvent evento) {
    	   JOptionPane.showMessageDialog(null, "Acao 2");
       }  
   };
   
}

A forma como estou fazendo, está correta? Poderiam me indicar os erros que estou cometendo para que eu pudesse corrigir e fazer da melhor maneira?
Obrigado.

@edit
Me desculpem, possivelmente errei a área de postagem. Poderia mover caso seja necessário?

Tá, você tá no caminho certo. Não que seu código não vá funcionar, só que tem algumas coisas desnecessária aí.

Primeiro, ButtonEvento não precisa implementar action listener, uma vez que você está fazendo um action performed vazio. Segundo, declare os acao1 e acao2 como static, assim você não precisa instanciar a classe ButtonEvento.

Indo por esse lado, pode chegar a funciona como você quer. Quem sabe, até um Factory você pode fazer. Mas ai vai da sua capacidade em java. Pesquise sobre esse design pattern Factory e veja se você consegue desvendar como fazer.

Obrigado pelas dicas, elissonandrade . Não sei qual o nível de aprendizado é necessário para começar a estudar/utilizar os design patterns mas já estou começando a ler, superficialmente eu entendi como funciona o Factory porém irei me aprofundar no assunto.