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|
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|
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|
== Aplicabilidade ==
Liña 26:
== Estrutura ==
[[File:EstructuraGL2.jpg|
== Participantes ==
Liña 58:
== Exemplo de implementación ==
[[Ficheiro:DClasesGL.jpg|
<big><source lang="java">
Liña 161:
</big>
[[Ficheiro:SecuenciaGL.jpg|
[[Categoría:Patróns de deseño]]
|