Pergunta

Alguém pode explicar por que o nome "decorador" foi escolhido para a funcionalidade transmitida pelo padrão de projeto Decorator?

Eu sempre achei que o nome bastante enganador, porque decorador e marcação de som interface muito semelhante a mim em seu propósito. No entanto, enquanto um marcador realmente não "fazer qualquer coisa", decoradores certamente fazer. Mas as decorações prazo para me implica passividade, o que não é realmente o caso com esse padrão que é usado para adicionar funcionalidade.

Foi útil?

Solução

Eu acredito que a origem do termo vem do exemplo de uso de decorar uma interface de usuário com componentes diferentes, por exemplo, barras de rolagem, botões de fechar, etc.

EDIT: Página de Referência 308 em "Design Patterns em C #", de Steven John Metsker:

Uma das aplicações iniciais de DECORADOR (e, presumivelmente, a aplicação a partir da qual deriva o seu nome DECORADOR) situa-se na construção de componentes de GUI.

Outras dicas

Eu acho que a analogia é que quando você decorar uma casa que você realmente não quebrar qualquer paredes ou qualquer coisa assim, você só colocar algumas coisas em torno de (quantos você quiser) de uma forma que alterações como ele olha (e a sua funcionalidade). Eu acho que esta palavra foi escolhida para implicar não-intromissão, e também algo opcional.

Um decorador "decora" uma interface, adicionando funcionalidade extra aos métodos existentes, mas na verdade não acrescentando qualquer própria. A decoração não é essencial para a funcionalidade básica; caso contrário, teria sido construído para a classe base.

Porque você está adicionando uma nova funcionalidade a um objeto existente. Em essência, você está "decorar" o objeto com a nova funcionalidade.

Hey, deixá-lo para os geeks para compensar nomes.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top