O que são “decoradores” e como eles são usados?

Estou curioso para saber exatamente o que são os decoradores no AngularJS. Não há muita informação online para decoradores, exceto por uma sinopse noDocumentação AngularJS e uma breve (embora interessante) menção em umVídeo do youtube.

Como o pessoal da Angular disse, um decorador é:

Decoração de serviço, permite ao decorador interceptar a criação da instância de serviço. A instância retornada pode ser a instância original ou uma nova instância que delega à instância original.

Eu realmente não sei o que issosignificae não sei por que você separaria essa lógica do próprio serviço. Por exemplo, se eu quisesse retornar algo diferente sob condições diferentes, eu apenas passaria argumentos diferentes para as funções relevantes ou usaria outra função compartilhando esse estado privado.

Eu ainda sou uma espécie de noob AngularJS então eu tenho certeza que é apenas ignorância e / ou maus hábitos que eu peguei.

questionAnswers(5)

yourAnswerToTheQuestion