Carlos Roberto Marques Junior 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