Movatterモバイル変換


[0]ホーム

URL:


Saltar para o conteúdo
Wikipédia
Busca

Visitor Pattern

Origem: Wikipédia, a enciclopédia livre.
Este artigonão citafontes confiáveis. Ajude ainserir referências. Conteúdo nãoverificável pode ser removido.—Encontre fontes:ABW  • CAPES  • Google (notícias • livros • acadêmico)(Outubro de 2016)

Em programaçãoorientada a objetos eengenharia de software, ovisitor pattern é umpadrão de projeto comportamental. Representa uma operação a ser realizada sobre elementos da estrutura de um objeto. O Visitor permite que se crie uma nova operação sem que se mude a classe dos elementos sobre as quais ela opera. É uma maneira de separar umalgoritmo da estrutura de um objeto. Um resultado prático é a habilidade de adicionar novas funcionalidades a estruturas de um objeto preexistente sem a necessidade de modificá-las.

A ideia é usar uma classe de elementos como uma estrutura, sendo que cada uma delas possui um método cujo um dos argumentos é um objeto do tipovisitor.Visitor é umainterface que possui um métodovisit() para cada classe de elementos. O métodoaccept() de uma classe de elementos invoca o métodovisit() de sua respectiva classe. Classesvisitor concretas distintas podem então ser escritas para implementar operações especiais.

O padrão Visitor é uma solução para separar o algoritmo da estrutura. Uma das vantagens desse padrão é a habilidade de adicionar novas operações a uma estrutura já existente. Com ele, podemos ter a classe ObjetoSolido e o comportamento de queda em uma classe Gravidade, separada da estrutura do ObjetoSolido. Isso é feito através de uma interface, onde o objeto que vai executar esse método da classe do comportamento, passa uma referencia dela mesmo junto dos parâmetros normais da classe.No caso desse exemplo, teríamos:

Visitorgravidade=newGravidade();//esse é o nosso visitor, responsável pelo comportamento de queda.Solidosolido=newSolido("caixa");//solido que recebera o comportamentosolido.accept(gravidade);//recebe o comportamento Gravidade

Internamente, o método accept(Visitor visitor) de Solido faz o seguinte:

publicvoidaccept(Visitorvisitor){visitor.visitSolido(this);}

Ao passar para o Visitor uma referencia de si mesmo, o visitor pode acessar os métodos e atributos públicos dessa classe, que no nosso caso, vai adicionar a aceleração da gravidade ao Solido. Assim como o comportamento de queda foi adicionado, outros também poderiam ser feitos da mesma maneira, como movimentação através doteclado, sons... as possibilidades são infinitas.

Padrões GoF de criação
Padrões GoF estruturais
Padrões GoF comportamentais
Padrões GRASP
Ícone de esboçoEste artigo sobresoftware é umesboço. Você pode ajudar a Wikipédiaexpandindo-o.
Obtida de "https://pt.wikipedia.org/w/index.php?title=Visitor_Pattern&oldid=67484745"
Categorias:
Categorias ocultas:

[8]ページ先頭

©2009-2025 Movatter.jp