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?
class Aluno {
private ValidationStrategy validationStragey;
public boolean validate() {
return validationStrategy.validate( this );
}
}
class Email {
private ValidationStrategy validationStragey;
public boolean validate() {
return validationStrategy.validate( this );
}
}
// valida os dados para a database
class DataBaseValidationStrategy implements ValidationStragety {
public boolean validate( Object obj ) {
}
}
// valida endereços de email
class EmailValidationStrategy implements ValidationStragety {
public boolean validate( Object obj ) {
}
}