Visto que a cada tipo de expressão nova que adicionamos temos que adicionar um novo metodo à classe, não seria melhor utilizar uma enum ou outro padrao de projeto?
Visto que a cada tipo de expressão nova que adicionamos temos que adicionar um novo metodo à classe, não seria melhor utilizar uma enum ou outro padrao de projeto?
Fala Mauro, tudo bem?
Realmente, esse pattern requer a escrita de bastante código para preparar o uso dos Visitors. Você pode dar uma olhada no pattern Strategy (https://www.alura.com.br/artigos/reduzindo-de-n-ifs-para-nenhum-com-strategy-em-java) . Ele oferece uma separação de responsabilidades e ainda é possível adicionar novas funcionalidades sem a necessidade de alterar cada classe em sua hierarquia.