Qual a melhor fora de fazer esse Switch case?

Pessoal, tenho que fazer um projetinho para o curso, só que sem interface swing ainda, só com Inputs e Message…um saco enfim…

tenho uma dúvida no meu metodo Main onde vou iniciar o projeto:

Quando fizer a escolha das opções exemplo CLIENTE abre o submenus com mais opções, como seria a forma ideal para fazer isso.?? pois se eu fizer dessa forma abaixo, vai ficar um Switch case dentro do outro, que acredito que não seja o certo.

[code]public class TestaAplicativo {

/**
 * @param args
 */
public static void main(String[] args) {
	// TODO Auto-generated method stub
	int escolha;
	int opcao = Integer.parseInt(JOptionPane.showInputDialog("Selectione uma das opções abaixo"+
			"\n #1 Clientes"+
			"\n #2 Categorias"+
			"\n #3 Instrumentos"+
			"\n #4 sair!"));

	switch (opcao){

	case 1:
	
		escolha = Integer.parseInt(JOptionPane.showInputDialog("Selecione um opção para o cliente"+
				"\n #1 Inserir Cliente"+
				"\n #2 Editar Cliente"+
				"\n #3 Deletar Cliente"+
				"\n #4 Visualizar todos "+
				"\n #5 Pesquisa Cliente")+
				"\n #6 sair!");
		
		break; 
                 //  se eu escolher a opção 1 inserir, vou instanciar a minha clase clienteDAO etc...
	
	case 2:
		
		break;
	case 3:
		
		break;
	case 4:
		
		break;
		

}

}
}[/code]

Você poderia usar o padrão Command, talvez possa ajudar. E esses comandos podem ser compostos para facilitar suas ideas e se desejar encadear as ações. Enfim opções têm aos montes.

Na pior das hipóteses, faça cada case desses chamar uma função. Deixar o código direto no caso transforma a aplicação num linguição.