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

Post on 16-Apr-2015

105 views 0 download

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

Composite

Carlos Roberto Marques Junior

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.

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.

Motivação

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

Motivação

Padrão Composite

Motivação

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.

Estrutura

Estrutura

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.

Participantes

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

Um objeto folha não pode ter filhos.

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

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.

Participantes

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

interface Component.

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.

Consequências

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

lida com os primitivos;

Exemplos

Exemplos

Exemplos

Exemplos

Exemplos

Dúvidas

crmarquesjc@gmail.com