Pergunta

Recentemente, eu realmente realmente girei injeção de dependência e a maravilha do padrão de design do decorador e estou usando -o em todo o lugar.

Por mais maravilhoso que seja, no entanto, uma coisa com a qual tenho dificuldade em nomear minhas aulas de decoradores, então eu gostaria de saber o que os outros fazem. Você sempre anexa a palavra decoradora? Você incorpora o nome da interface é a decoração? Eles recebem seu próprio espaço para nome?

O que vocês fazem?

Foi útil?

Solução

Evito usar nomes de padrões de design. Eu acho que isso pertence à documentação, se em algum lugar. Nomeie a classe/função do decorador depois do que faz ou representa. O fato de ele decorar ou pontes, links ou proxies ou representações é de pouca consequência.

Toda vez que você nomeia uma string, você adiciona um sufixo de string? Parece como mencionado, e isso é algo que eu tento evitar.

Outras dicas

Dê um exemplo da estrutura de IO da API Java. Ele usa o padrão do decorador extensivamente, mas os nomes das classes não refletem isso. Por exemplo, um leitor de buffers pode decorar um FilleReader, mas eles têm o nome de sua função - leitores.

Adicionar decorador ao nome levaria a outros problemas se você também incorporasse outros padrões envolvendo as mesmas classes que costuma ser o caso. Você pode acabar com uma classe chamada MyDecoratorstrategyComponent.

Chame o que faz.

Eu tenho um monte de decoradores para uma interface iprinter. Eles são chamados:

  • PrintDisasterRecovery - Manuseio de exceção
  • PrintQueuer - faz com que seja uma chamada assíncrona

Esses rachados herdam do PrintDecorator; portanto, se alguém espreita abaixo das cobertas, eles podem ver o que está acontecendo.

Geralmente onde o padrão é encapsulado em um objeto (vs. uma coleção de objetos), é mais claro e mais fácil incluir o nome do padrão na classe, neste caso usando Decorator como um sufixo. Isso funciona bem para proxies, decoradores, fábricas, adaptadores etc., mas não funciona para outros padrões em que um grupo de objetos é necessário na implementação do padrão como uma ponte (ou seja, que objeto levaria adequadamente o sufixo -bridge?)

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