Junior — Middle
Pode explicar o conceito do padrão 'visitante' e sua aplicação no design de programas?
sobes.tech IA
Resposta da IA
O padrão « visitante » (Visitor) permite separar os algoritmos dos objetos sobre os quais eles são executados. Ele define uma operação que é realizada sobre os elementos de uma estrutura de objetos, permitindo adicionar novas operações sem modificar as classes dos elementos.
Aplicação:
- Quando é necessário realizar diferentes operações sobre objetos de uma estrutura complexa.
- Quando novas operações são frequentemente adicionadas, mas a estrutura dos objetos permanece estável.
Exemplo em C#:
interface IVisitor {
void Visit(ElementA element);
void Visit(ElementB element);
}
interface IElement {
void Accept(IVisitor visitor);
}
class ElementA : IElement {
public void Accept(IVisitor visitor) {
visitor.Visit(this);
}
}
class ElementB : IElement {
public void Accept(IVisitor visitor) {
visitor.Visit(this);
}
}
class ConcreteVisitor : IVisitor {
public void Visit(ElementA element) {
Console.WriteLine("Processamento de ElementA");
}
public void Visit(ElementB element) {
Console.WriteLine("Processamento de ElementB");
}
}
Aqui, novas operações podem ser adicionadas criando novas classes de visitantes, sem alterar as classes de elementos.