Padrão estrutural - composite

Páginas: 9 (2053 palavras) Publicado: 13 de junho de 2013
Composite – Padrão Estrutural
Intenção

Compor objetos em estruturas de arvores para representarem hierarquias partes - todas.
Composite permite aos clientes tratarem de maneira uniforme objetos individuais e composições de objetos.

Motivação

Aplicações gráficas, tais como editores de desenhos e sistemas de captura esquemática, permitem aos usuários construir diagramas complexos apartir de componentes simples. O usuário pode agrupar componentes para formar componentes ainda maiores. Uma implementação simples poderia definir classes para primitivas gráficas, tais como Texto e Linhas, além de outras classes que funcionam como recipientes (containers) para essas primitivas.

Porém, há um problema com essa abordagem: o código que usa essas classes deve tratar objetos primitivose objetos recipientes de modo diferente, mesmo se na maior parte do tempo o usuário os trata de forma idêntica. Ter que distinguir entre esses objetos torna a aplicação mais complexa. O padrão Composite descreve como usar a composição recursiva de maneira que os clientes não tenham que fazer essa distinção.

A chave para o padrão Composite é uma classe abstrata que representa tanto asprimitivas como os seus recipientes. Para o sistema gráfico, esta classe é Graphic. A Graphic declara operações tomo Draw, que é são específicas de objetos gráficos. Ela também declara operações que todos os objetos compostos compartilham, tais como operações para acessar e administrar seus filhos. 
As subclasses Line, Rectangle e Text (ver diagrama de classes precedente) definem objetos gráficosprimitivos Essas classes implementam Draw para desenhar linhas, retângulos e textos, respectivamente. Uma vez que as primitivas gráficas não têm filhos gráficos, nenhuma dessas subclasses implementam operações relacionadas com filhos.
A classe Picture define um agregado de objetos Graphic. Picture implementa Draw para chamar Draw em seus filhos e implementa operações relacionadas com filhos da maneiranecessária. Como a interface de Picture segue a interface de Graphic, os objetos Picture podem compor outros objetos Picture recursivamente.
O diagrama a seguir mostra uma típica estrutura de objeto composto, composta recursivamente por objetos gráficos:

Aplicabilidade

Use o padrão Composite quando:

* Quiser representar hierarquias parte-todo de objetos;
* Quiser que os clientessejam capazes de ignorar as diferenças entre composição de objetos e objetos individuais. Os clientes tratarão todos os objetos na estrutura composta de maneira uniforme.

Estrutura

Uma típica estrutura de um objeto Composite pode se parecer como esta:

Participantes

* Componente (Component-Graphic):

* Declara a interface para objetos na composição;
* Implementacomportamento default para interface comum a todas as classes, como apropriado;
* Declara uma interface para acessar ou gerenciar seus Componentes filhos;
* (opcional) define uma interface para acessar o pai de um Componente na estrutura recursiva, e implementa se apropriado.

* Folha (Leaf-Retângulo, Line, Text, etc):

* Representa objetos folhas na composição. Uma folha não tem filhos;* Define comportamento para objetos primitivos na composição;

* Composição (Composite-Picture):
* Define comportamento para Componentes que têm filhos;
* Armazena Componentes filhos;
* Implementa operações relacionadas com filhos na interface do Componente.

* Cliente (Client):
* Manipula objetos na composição através da interface Componente.

Colaboração.

*Clientes usam a interface da classe Componente para interagir com objetos na estrutura Composite. Se o recipiente é uma Leaf (Folha), então a requisição é manipulada diretamente. Se o recipiente é uma composição, então ele geralmente passa adiante requisições para seus Componentes filhos e, possivelmente executa operações adicionais.

Consequência

* Define a consistência das hierarquias...
Ler documento completo

Por favor, assinar para o acesso.

Estes textos também podem ser interessantes

  • Composite
  • Composite Pattern
  • Padrao
  • padrao
  • Padrão
  • Padrão
  • Padrao
  • estrutural

Seja um membro do Trabalhos Feitos

CADASTRE-SE AGORA!