domingo, 4 de julho de 2010

Decorator - (GoF - Estrutural)

O que é ?
É um padrão que permite que você adicione funcionalidade para um objeto dinamicamente modificando seu comportamento.

Caso de uso:
Quando quisermos adicionar responsabilidades para um objeto dinamicamente.

Estrutura:














Vantagens:
  • Possui a habilidade de adicionar funções dinamicamente antes ou depois.
    Possui a característica de permitir a criação de classes simples fazendo com que o conteúdo dessas classes seja apenas o necessário para modificar o método dinamicamente.
  • Estende a funcionalidade do método sem utilizar o conceito de herança.
    Sendo assim, ele permite utilizar o conceito de herança para herdar outras funcionalidades mais importantes.

  • Reutilização de código.
    Com o código separado em responsabilidades bem definidas, consigo utilizar o decorador para casos com responsabilidades bem definidas.

  • Adiciona funcionalidades sem modificar a estrutura da base. Pois você utilizando um novo decorador, só precisa adicionar uma nova funcionalidade, pois a base já vai estar pronta.

Desvantagens:
  • Aumenta a complexidade da criação do objeto. Pois para a criação do objeto, é preciso ter várias instanciações alinhadas, sendo assim, pode aumentar a complexidade, e isso pode acarretar em um problema de consistência.
  • Acoplamento.
    Pois um decorador pode depender de outro decorador.
  • Manutenção.
    Pois o acoplamento muito alto sempre gera um problema.

Nenhum comentário:

Postar um comentário

DÚVIDAS - CRITICAS - SUGESTÕES