Composite
Origem: Wikipédia, a enciclopédia livre.
Composite é um padrão de projeto de software utilizado para representar estruturas de objetos agrupados hierarquicamente. Através deste padrão é possível enxergar uma "composição" de objetos como se fosse um objeto individual.
[editar] Aplicação
Em aplicações gráficas é comum a existência de hierarquias complexas de objetos. Uma janela de uma aplicação, por exemplo, pode ser composta de um objeto do tipo retângulo, que por sua vez é composto de objetos do tipo linha mais objetos do tipo texto e assim por diante. Considerando que todos estes objetos contém o método desenhar()
, e que cada um deles deve ser chamado quando a janela for carregada, o código responsável por desencadear essa ação será bastante complexo. Por outro lado, se esses objetos forem tratados como uma composição (composite), que contém um método desenhar()
responsável pela chamada do método respectivo em cada objeto, será muito mais fácil, do ponto de vista de um cliente externo, fazer com que a janela seja desenhada.
[editar] Estrutura
O diagrama abaixo mostra a estrutura de classes da solução do problema dos componentes visuais. Antes do carregamento de uma janela, como no exemplo citado acima, os objetos são criados e adicionados ao Composite através do método adicionar()
. Para que a janela seja mostrada, o método desenhar()
do Composite é chamado pelo cliente (não aparece no diagrama) provocando a execução de todos os métodos desenhar()
dos componentes adicionados na composição. Desta maneira é possível interagir com uma composição de objetos como se interage com um objeto individualmente.