Chain of Responsability
Histórico de versão
Data | Versão | Descrição | Autor(es) |
---|---|---|---|
07.04.2021 | 0.1 | Criação do documento | Rafaella Junqueira Lucas Lopes Geraldo Victor Kalebe Lopes |
07.04.2021 | 0.2 | Adicao do diagrama UML | Rafaella Junqueira Geraldo Victor |
Participantes
- Rafaella Junqueira
- Lucas Lopes
- Geraldo Victor
- Kalebe Lopes
Introdução
O Chain of Responsibility, ou cadeia de responsabilidades, é um padrão de projeto comportamental que se baseia em transformar certos comportamentos em objetos solitários chamados handlers. Este padrão permite a passagem de pedidos por uma corrente desses handlers. Ao receber um pedido, cada handler decide se o processa ou o passa adiante para o próximo handler na corrente.
Nesta cadeia de responsabilidades, a principal função é evitar a dependência entre um objeto receptor e um objeto solicitante, por isso está ligado a ideia de baixo acoplamento, por permitir que outros objetos da cadeia tenham a oportunidade de tratar uma solicitação. A utilização do padrão permite determinar quem será o objeto que irá tratar a requisição durante a execução.
Metodologia
A documentação do padrão GoF Chain of Responsability, assim como a modelagem do diagrama UML, foi realizada por meio de reuniões da equipe através da plataforma Discord. O diagrama foi modelado utilizando a ferramenta Lucidchart.
Aplicação no projeto
O padrão pode ser aplicado para validar os dados de realização de cadastro de usuários. A abstração da cadeia é representada pela interface SigupProcess, os processos são definidos pelas classes PasswordIsNotEmptyProcess, UsernameIsNotEmptyProcess e PasswordIsEqualProcess. A classe ClientProcess contém a chamada à cadeia de processos.
Modelagem UML
Autores: Rafaella Junqueira e Geraldo Victor
Referências
REFACTORING GURU, Chain of Responsibility, Disponível em https://refactoring.guru/pt-br/design-patterns/chain-of-responsibility Acesso em 7 de abril de 2021.
WIKIPEDIA, Chain of Responsibility Disponível em https://pt.wikipedia.org/wiki/Chain_of_Responsibility#Situa%C3%A7%C3%B5es_de_Uso Acesso em 7 de abril de 2021.