(16 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | + | {{NAVPO}} | |
− | + | {{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 11: | Line 11: | ||
[[Image:visitor-dpcd.png|600px]] | [[Image:visitor-dpcd.png|600px]] | ||
− | ===Diagrama de | + | ===Diagrama de sequência=== |
− | As colaborações entre os intervenientes são as que figuram no seguinte diagrama de | + | As colaborações entre os intervenientes são as que figuram no seguinte diagrama de sequência: |
[[Image:visitor-dpsd.png|600px]] | [[Image:visitor-dpsd.png|600px]] | ||
Line 19: | Line 19: | ||
==Exemplo== | ==Exemplo== | ||
− | Produtos | + | * [[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 == | ||
+ | |||
+ | * [[Visitor (padrão de desenho)/Exercício 1: Cálculo de Impostos|Cálculo de Impostos]] | ||
− | [[category:PO | + | [[category:Ensino]] |
+ | [[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: