• Padrões de alto nível podem ser compostos ou relacionados com padrões que endereçam problemas de nível mais baixo. (wikipedia.org)
  • Decorators oferecem uma alternativa flexível ao uso de herança para estender uma funcionalidade, com isso adiciona-se uma responsabilidade ao objeto e não à classe. (wikipedia.org)
  • O Decorator surgiu da necessidade de adicionar um comportamento, funcionalidade ou estado extra a um objeto em tempo de execução, por exemplo quando Herança não é concebível por ser um caso que geraria um número muito alto de sub-classes. (wikipedia.org)
  • Padrões de projeto orientados a objeto normalmente mostram relacionamentos e interações entre classes ou objetos , sem especificar as classes ou objetos da aplicação final que estão envolvidas. (wikipedia.org)
  • O decorator pode ser visto como uma versão simplificada do padrão Composite, porém o Decorator apenas adiciona responsabilidades adicionais e não é usado para agregar objetos Um exemplo simples e prático da aplicação do Decorator seria colocar acessórios em uma arma, como miras e silenciadores. (wikipedia.org)
  • Um padrão de projeto não é um projeto finalizado que pode ser diretamente transformado em código fonte ou de máquina , ele é uma descrição ou modelo ( template ) de como resolver um problema que pode ser usado em muitas situações diferentes. (wikipedia.org)
  • Uma análise racional que envolva uma abstração de dados empíricos, uma observação da aplicação de padrões em artefatos tradicionais, uma série convincente de exemplos e uma análise de soluções ruins ou fracassadas pode ser a forma de encontrar este equilíbrio. (wikipedia.org)
  • Outra solução seria utilizar o Design Pattern Decorator, com esse Design Pattern será possível contornar esse problema de uma forma simples e que não viole nenhum princípio de design. (wikipedia.org)
  • Em Engenharia de Software , um padrão de desenho ( português europeu ) ou padrão de projeto ( português brasileiro ) (do inglês design pattern ) é uma solução geral para um problema que ocorre com frequência dentro de um determinado contexto no projeto de software . (wikipedia.org)
  • O Decorator resolve problemas que a herança gera em determinados momentos, em que classes precisam ser muitos especificadas e detalhas de diferentes formas gerando excessivas subclasses. (wikipedia.org)
  • Um modo de se contornar esse problema seria criar uma interface e criar armas que implementam essa interface (Figura 2), porém isso faria com que tivéssemos muitas classes que implementam essa interface, para apenas dois acessórios teríamos que criar 4 classes (Arma sem acessórios, arma com silenciador, arma com mira, arma com mira e silenciador) tornando essa uma alternativa ruim. (wikipedia.org)