Composite Carlos Roberto Marques Junior. Propósito do Padrão Estruturar objetos em forma de...

21
Composite Carlos Roberto Marques Junior

Transcript of Composite Carlos Roberto Marques Junior. Propósito do Padrão Estruturar objetos em forma de...

Page 1: Composite Carlos Roberto Marques Junior. Propósito do Padrão Estruturar objetos em forma de árvore para representar hierarquias de parte-todo. Permitir.

Composite

Carlos Roberto Marques Junior

Page 2: Composite Carlos Roberto Marques Junior. Propósito do Padrão Estruturar objetos em forma de árvore para representar hierarquias de parte-todo. Permitir.

Propósito do Padrão

Estruturar objetos em forma de árvore para representar hierarquias de parte-todo.

Permitir o tratamento uniforme de objetos individuais e composições de objetos

É chamado composição recursiva.

Page 3: Composite Carlos Roberto Marques Junior. Propósito do Padrão Estruturar objetos em forma de árvore para representar hierarquias de parte-todo. Permitir.

Motivação

Um sistema de criação e manipulação de figuras geométrias, figuras e texto, como editores de desenhos.

Domínio: Linhas, Retângulos, Círculos, Texto e composição dos anteriores.

Page 4: Composite Carlos Roberto Marques Junior. Propósito do Padrão Estruturar objetos em forma de árvore para representar hierarquias de parte-todo. Permitir.

Motivação

Implementação Simples:– Definir classes para primitivas básicas;– Definir outras classe containers.

Page 5: Composite Carlos Roberto Marques Junior. Propósito do Padrão Estruturar objetos em forma de árvore para representar hierarquias de parte-todo. Permitir.

Motivação

Padrão Composite

Page 6: Composite Carlos Roberto Marques Junior. Propósito do Padrão Estruturar objetos em forma de árvore para representar hierarquias de parte-todo. Permitir.

Motivação

Page 7: Composite Carlos Roberto Marques Junior. Propósito do Padrão Estruturar objetos em forma de árvore para representar hierarquias de parte-todo. Permitir.

Aplicabilidade

Representação de hierarquias parte-todo de objetos;

Capacidade dos clientes de abstrair a diferença entre composições de objetos e objetos individuais.– Tratamento uniforme para objetos da estrutura.

Page 8: Composite Carlos Roberto Marques Junior. Propósito do Padrão Estruturar objetos em forma de árvore para representar hierarquias de parte-todo. Permitir.

Estrutura

Page 9: Composite Carlos Roberto Marques Junior. Propósito do Padrão Estruturar objetos em forma de árvore para representar hierarquias de parte-todo. Permitir.

Estrutura

Page 10: Composite Carlos Roberto Marques Junior. Propósito do Padrão Estruturar objetos em forma de árvore para representar hierarquias de parte-todo. Permitir.

Participantes

Component– Declara a interface para os objetos na

composição;– Implementa comportamento-padrão para a

interface comum a todas as classes;– Declara uma interface para acessar e gerenciar

os seus componentes-filhos.

Page 11: Composite Carlos Roberto Marques Junior. Propósito do Padrão Estruturar objetos em forma de árvore para representar hierarquias de parte-todo. Permitir.

Participantes

Leaf– Representa objetos-folha na composição;

Um objeto folha não pode ter filhos.

– Define comportamento para objetos primitivos na composição.

Page 12: Composite Carlos Roberto Marques Junior. Propósito do Padrão Estruturar objetos em forma de árvore para representar hierarquias de parte-todo. Permitir.

Participantes

Composite– Define comportamento para componentes que

têm filhos;– Armazena os componentes-filhos;– Implementa as operações relacionadas com os

filhos presentes na interface de Component.

Page 13: Composite Carlos Roberto Marques Junior. Propósito do Padrão Estruturar objetos em forma de árvore para representar hierarquias de parte-todo. Permitir.

Participantes

Client– Manipula objetos na composição através da

interface Component.

Page 14: Composite Carlos Roberto Marques Junior. Propósito do Padrão Estruturar objetos em forma de árvore para representar hierarquias de parte-todo. Permitir.

Colaboração

Os clientes lidam com a interface da classe Component para interagir com os objetos da estrutura.

Se o objeto referenciado pelo Component é uma Leaf, então a solicitação é tratada diretamente.

Se o objeto for um Composite, ele repassa as solicitações para os seus componentes-filhos.

Page 15: Composite Carlos Roberto Marques Junior. Propósito do Padrão Estruturar objetos em forma de árvore para representar hierarquias de parte-todo. Permitir.

Consequências

Torna o cliente simples– Cliente lida com objetos compostos assim como

lida com os primitivos;

Page 16: Composite Carlos Roberto Marques Junior. Propósito do Padrão Estruturar objetos em forma de árvore para representar hierarquias de parte-todo. Permitir.

Exemplos

Page 17: Composite Carlos Roberto Marques Junior. Propósito do Padrão Estruturar objetos em forma de árvore para representar hierarquias de parte-todo. Permitir.

Exemplos

Page 18: Composite Carlos Roberto Marques Junior. Propósito do Padrão Estruturar objetos em forma de árvore para representar hierarquias de parte-todo. Permitir.

Exemplos

Page 19: Composite Carlos Roberto Marques Junior. Propósito do Padrão Estruturar objetos em forma de árvore para representar hierarquias de parte-todo. Permitir.

Exemplos

Page 20: Composite Carlos Roberto Marques Junior. Propósito do Padrão Estruturar objetos em forma de árvore para representar hierarquias de parte-todo. Permitir.

Exemplos

Page 21: Composite Carlos Roberto Marques Junior. Propósito do Padrão Estruturar objetos em forma de árvore para representar hierarquias de parte-todo. Permitir.

Dúvidas

[email protected]