Chain of Responsibility (padrón de deseño): Diferenzas entre revisións

Contido eliminado Contido engadido
m Bot: Substitución automática de texto (-|center| +|centro|)
Liña 8:
* O problema é que o obxecto que en última instancia proporciona a axuda non coñece explicitamente o obxecto que inicia a petición de axuda. Necesitamos un modo de desacoplar o botón que da lugar á petición de axuda dos obxectos que poderían proporcionar dita información. O patrón Cadea de Responsabilidade define como facer isto: a idea é desacoplar ós emisores e ós receptores dándolle a varios obxectos a posibilidade de tratar unha petición. Esta petición pasará a través da cadea de obxectos ata que sexa procesada por un deles.
 
[[Ficheiro:Motivacion2GL.png|centercentro|500px|]]
 
Se un usuario solicita axuda sobre un botón denominado "Imprimir". O botón encóntrase nunha instancia de DialogoDeImpresion. O seguinte diagrama de interacción mostra como a petición de axuda se reenvía a través da cadea.
 
[[Ficheiro:Motivacion3GL.jpg|centercentro|500px|]]
 
Nese caso a petición non é procesada nin por unBotonDeImpresion nin por unDialogoDeImpresion; detense en unhaAplicacion, quen pode procesala ou ignorala. O cliente que deu orixe á petición non ten ningunha referencia directa ó obxecto que finalmente a satisfai.
Liña 18:
Para reenviar a petición ó longo da cadea e para garantir que os receptores permanecen implícitos, cada obxecto da cadea comparte unha interface común para procesar peticións e para acceder ó seu sucesor na cadea. Por exemplo, neste sistema de axuda podería definirse unha clase ManexadorDeAxuda.
 
[[Ficheiro:Motivacion1GL.jpg|centercentro|500px|]]
 
== Aplicabilidade ==
Liña 26:
 
== Estrutura ==
[[File:EstructuraGL2.jpg|centercentro|500px]]
 
== Participantes ==
Liña 58:
 
== Exemplo de implementación ==
[[Ficheiro:DClasesGL.jpg|centercentro|500px|]]
 
<big><source lang="java">
Liña 161:
</big>
 
[[Ficheiro:SecuenciaGL.jpg|centercentro|600px|]]
 
[[Categoría:Patróns de deseño]]