Visitor vs. Strategy

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?

Valeu

Cara, são coisas diferentes:

Strategy:

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 ) {

    }
}

Visitor:
http://www.fluffycat.com/java/JavaNotes-GoFVisitor.html