(20 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 do código da classe do objecto "visitado". | ||
− | + | ==Estrutura== | |
− | == | + | ===Diagrama de classes=== |
O padrão ''visitor'' tem a seguinte estrutura de classes: | O padrão ''visitor'' tem a seguinte estrutura de classes: | ||
− | [[Image:visitor-dpcd.png]] | + | [[Image:visitor-dpcd.png|600px]] |
− | + | ===Diagrama de sequência=== | |
− | [[Image:visitor-dpsd.png]] | + | As colaborações entre os intervenientes são as que figuram no seguinte diagrama de sequência: |
+ | |||
+ | [[Image:visitor-dpsd.png|600px]] | ||
==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: