1 / 15

Padrão de Projeto Composite

Padrão de Projeto Composite. Leandro Alvim. Propósito do Padrão. Compor objetos em uma estrutura de árvore Representar hierarquias de parte-todo Tratar objetos e composições de objetos uniformemente Mascarar ao Cliente a manipulação desses objetos. Motivação - Exemplo. Um figura pode ser

aiko-stark
Download Presentation

Padrão de Projeto Composite

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Padrão de ProjetoComposite Leandro Alvim

  2. Propósito do Padrão • Compor objetos em uma estrutura de árvore • Representar hierarquias de parte-todo • Tratar objetos e composições de objetos uniformemente • Mascarar ao Cliente a manipulação desses objetos

  3. Motivação - Exemplo • Um figura pode ser • Linha, retângulo ou texto (primitivas)‏ • Uma figura conter • Figura (composição de primitivas)‏ • O Cliente quer apenas desenhar a figura • Aspectos estruturais não são relevantes • O que é Linha ?

  4. Motivação - Exemplo • Uma figura é uma composição de uma figura com primitivas

  5. Estrutura

  6. Participantes • Component (nó)‏ • Define a interface para os objetos da composição • Implementa o comportamento de uma interface comum para todas as composições e objetos dessas composições • Define uma inetrface para manipulação e aesso para os componentes filhos • Leaf (nó folha ou terminal)‏ • Define o comportamento do objeto primitivo • Objeto folha de uma composição • Não possui filhos

  7. Participantes • Composite (nó não-terminal)‏ • Armazena componentes filhos • Define um comportamento comum para os objetos filhos • Implementa operações da interface Component que estão relacionadas aos seus componentes filhos • Client • Manipula objetos que estão contidos em composições a partir da interface Component

  8. Colaborações

  9. Aplicabilidade • Quando se quer representar hierarquias de parte-todo • Quando a distinção entre objetos e composições de objetos é irrelevante ao Cliente • Cliente trata objetos e composições uniformemente

  10. Conseqüências • Vantagens • Traz ao Cliente a simplicidade quanto a utilização de uma estrutura • Tratamento semehante para primitivas e composições • Facilidade quanto a adição de novos componentes • Não há necessidade de reestruturação do Cliente • A adição de um novo componente não altera a estrutura de outras classes da árvore • Melhor organização dos objetos primitivos • Objetos complexos são obtidos a partir da composição de objetos simples

  11. Conseqüências • Desvantagem • Quando o Cliente necessita de um conjunto restrito de componentes que encontram-se em uma composição • Solução: Utilizar uma verificação em tempo de execução

  12. Exemplo de código Component Leaf

  13. Exemplo de código Composite

  14. Exemplo de código

  15. Fim • leandrouff@gmail.com

More Related