Carrrrrrw ggaaewer

Disponível somente no TrabalhosFeitos
  • Páginas : 3 (511 palavras )
  • Download(s) : 0
  • Publicado : 17 de novembro de 2011
Ler documento completo
Amostra do texto
Decorator

Intenção:

Dinamicamente, agregar responsabilidades adicionais a um objeto. Os Decorators fornecem uma alternativa flexível ao uso de subclasses para extensão de funcionalidades.Motivação:

Algumas vezes queremos acrescentar responsabilidades a objetos individuais, e não a toda uma classe. Por exemplo, um toolkit para construção de interfaces gráficas de usuário deveriapermitir a adição de propriedades, como bordas, ou comportamentos, como rolamento, para qualquer componente da interface do usuário.
Uma forma de adicionar responsabilidade é a herança. Herdar uma bordade outra classe coloca uma borda em volta de todas as instancias de uma subclasse. Contudo, essa abordagem é inflexível, porque a escolha da borda é feita estaticamente. Um cliente não pode controlarcomo e quando decorar o componente com uma borda.
Uma abordagem mais flexível é embutir o componente em outro objeto que acrescenta a borda. O objeto que envolve o primeiro é chamado de decorator. Odecorator segue a interface do componente que decora, de modo que sai presença é transparente para os clientes do componente. O decorator repassa solicitações para o componente, podendo executar açõesadicionais (tais como desenhar uma borda) antes ou depois do repasse. A transparência permite encaixar decoradores recursivamente, desta forma permitindo um número ilimitado de responsabilidadesadicionais.
Suponha que tenhamos um objeto TextView que exibe texto numa janela. Como padrão, TextView não tem barras de rolamento porque nem sempre necessitamos.

Quando as necessitarmos, poderemosusar um ScrollDecorator para acrescentá-las.
Supnha , também, que queiramos acrescentar uma borda preta espessa ao redor do objeto TextView. Também podemos usar um objeto TextView com objetos BorderDecorator para essa finalidade. Simplesmente compomos os decoradores como TextView para produziro resultado desejado.
O diagrama de objetos abaixo mostra como compor um objetoTextView com objetos...
tracking img