(5 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
+ | {{NAVPO}} | ||
{{TOCright}} | {{TOCright}} | ||
− | O padrão ''visitor'' permite separar uma estrutura de objectos de algoritmos que a ela possam ser associados em tempo de execução. A adição do comportamento processa-se sem alteração objecto "visitado". | + | O padrão ''visitor'' permite separar uma estrutura de objectos de algoritmos que a ela possam ser associados em tempo de execução. A adição do comportamento processa-se sem alteração do código da classe do objecto "visitado". |
==Estrutura== | ==Estrutura== | ||
Line 18: | Line 19: | ||
==Exemplo== | ==Exemplo== | ||
− | * [[Visitor (padrão de desenho)/Produtos Hortícolas]] | + | * [[Visitor (padrão de desenho)/Expressões Aritméticas Simples|Expressões Aritméticas Simples]] |
+ | * [[Visitor (padrão de desenho)/Produtos Hortícolas|Produtos Hortícolas]] | ||
== Exercícios == | == Exercícios == | ||
Line 24: | Line 26: | ||
* [[Visitor (padrão de desenho)/Exercício 1: Cálculo de Impostos|Cálculo de Impostos]] | * [[Visitor (padrão de desenho)/Exercício 1: Cálculo de Impostos|Cálculo de Impostos]] | ||
− | [[category: | + | [[category:Ensino]] |
− | [[category: | + | [[category:PO]] |
O padrão visitor permite separar uma estrutura de objectos de algoritmos que a ela possam ser associados em tempo de execução. A adição do comportamento processa-se sem alteração do código da classe do objecto "visitado".
O padrão visitor tem a seguinte estrutura de classes:
As colaborações entre os intervenientes são as que figuram no seguinte diagrama de sequência: