Usuário(a):Jean Paulo Ath/Testes

Delegação, em computação ou programação de computadores, refere-se geralmente a uma entidade que passa algo para outra entidade.

Em Engenharia de Software, o padrão delegation(delegação) padrão de projeto orientado a objetos que permite a composição de objetos para alcançar o mesmo reuso de código da herança.

Na delegação, um objeto lida com uma solicitação delegando-a a um segundo objeto (o delegate(delegado)). O delegado é um objeto auxiliar, mas com o domínio original.

Com uma linguagem que tenha suporte para delegação, isto é feito implicitamente por ter self no delegate referente ao objeto original (enviado), não ao delegate (objeto receptor). No padrão delegate, isto é feito ao passar explicitamente o objeto original para o delegate, como argumento do método. Observe que 'delegação' é frequentemente usada de maneira vaga para se referir ao conceito distinto de forwarding (encaminhamento), onde o objeto enviado simplesmente usa o membro correspondente no objeto receptor, avaliado no campo do objeto receptor não no objeto original.

Observe que este artigo usa "objeto de envio / objeto receptor" para os dois objetos, em vez de "delegate / objeto receptor", enfatizando quais objetos enviam e recebem a chamada de delegação, não a chamada original.

Definition

editar

Na introdução "Gamma et al. 1994, Grady Booch" definiu o delegation como:

Delegation é uma maneira de tornar a composição tão poderosa para reutilização quanto herança [Lie86, JZ91]. No delegation, dois objetos são envolvidos no tratamento de uma solicitação: o objeto receptor delega operações ao seu "delegado". Isso é análogo a subclasses transferindo requisições a classe pai. Mas com herança, uma operação herdada sempre pode se referir ao objeto receptor por meio do operador this C++ e self em Smalltalk. Para alcançar o mesmo efeito com a delegação, o receptor passa a si mesmo ao delegado para deixar que a operação delegada consulte o receptor.[1]
  1. Gamma, Erich; Helm, Richard; Johnson, Ralph; Vlissides, John (1995). Design patterns : elements of reusable object-oriented software 14. print. ed. Reading, Mass.: Addison-Wesley. p. 20. ISBN 0-201-63361-2  Verifique o valor de |url-access=registration (ajuda)