Design Patterns - Decorator & Observer
Aluno : Davi Lima
Professor : Edmilson
Classificações dos Padrões de Projeto
Podem ser classificados quanto ao:
Escopo:
Classes;
Objetos.
Quanto ao seu propósito:
Criacional;
Estrutural;
Comportamental.
Padrão Decorator
Propósito : Estrutural
Escopo : Objeto
Classificação
Quanto ao seu propósito:
Criacional;
Estrutural:
=> Diz respeito a composição de objetos e classes.
Comportamental.
Quanto ao escopo:
classes:
objetos:
=> tratam relacionamentos entre objetos e por isso podem ser alterados em tempo de execução.
Motivação
Às vezes é necessário adicionar responsabilidades somente a objetos específicos, ao invés de a classes inteiras.
Pode-se utilizar decorators aninhados de forma recursiva,provendo portanto um número ilimitado de responsabilidades adicionadas
Definição
O padrão de projeto Decorator é um padrão estrutural que permite agregar dinamicamente responsabilidades adicionais a um objeto fornecendo assim uma alternativa flexível à utilização da herança como modo de estender funcionalidades.
Em uma definição mais formal de acordo com Gamma um padrão Decorator permite:
“Dinamicamente, agregar responsabilidades adicionais a um objeto. Os decoradores fornecem uma alternativa flexível ao uso de subclasses para extensão de funcionalidades.” (GAMMA et al.,
2000:170).
Definição
De forma mais simples podemos dizer que o padrão decorator permite estender (decorar) dinamicamente as características de uma classe usando a composição.
Diagrama de Classes
O diagrama de classes para o padrão Decorator é mostrado na figura abaixo:
Classes/Objetos participantes do padrão:
Componente - Define a interface para objetos que podem ter responsabilidades adicionadas a eles dinamicamente; ComponenteConcreto - Define um objeto para o qual responsabilidades adicionais podem ser anexadas;
Decorador - Mantém uma referência para um objeto Componente e define uma interface compatível com