Alguem poderia me explicar em qual situacao seria mais recomendado utilizar o visitor do que o strategy.
Pelo o q eu entendi, ambos permitem alterar a classe de implementacao em tempo de execucao.
Talvez pq com o visitor a manutencao fique mais complicada se for necessario adicionar novas classes na hierarquia, uma vez q sera necessario adicionar novos metodos nas classes que implementam a interface Visitor?
classAluno{privateValidationStrategyvalidationStragey;publicbooleanvalidate(){returnvalidationStrategy.validate(this);}}classEmail{privateValidationStrategyvalidationStragey;publicbooleanvalidate(){returnvalidationStrategy.validate(this);}}// valida os dados para a databaseclassDataBaseValidationStrategyimplementsValidationStragety{publicbooleanvalidate(Objectobj){}}// valida endereços de emailclassEmailValidationStrategyimplementsValidationStragety{publicbooleanvalidate(Objectobj){}}