O Chain of Responsibility parece uma forma OO pra reescrever o Switch/Case, não consigo perceber uma diferença tão grande entre os dois. Alguém poderia me elucidar melhor?
O Chain of Responsibility parece uma forma OO pra reescrever o Switch/Case, não consigo perceber uma diferença tão grande entre os dois. Alguém poderia me elucidar melhor?
Olá Afonso, tudo bem com você?
Peço desculpas pela demora no retorno.
Podemos considerar que o padrão de projeto Chain of Responsibility é a versão Orientada a Objeto das estruturas condicionais if, elif e else
.
No padrão de projeto Chain of Responsibility iremos trabalhar com classes, que recebem determinados atributos, com base nos atributos recebidos um método dessa classe será responsável por avaliar se ocorrerá a continuidade na cadeia de evento ou não.
Já trabalhando com as cláusulas Switch
e Case
, estaremos trabalhando com funções, que receberão um atributo, e com base nesse atributo fornecido determinada ação deverá ser seguida.
Uma curiosidade, a partir do Python 3.10 foi introduzido o uso das cláusulas match
e case
, que trabalham com a validação de um atributo e a tomada de ação com base neste atributo.
Para saber um pouco mais sobre o uso das cláusulas match
e case
recomendo a leitura dos seguintes artigos, que irão apresentar a sintaxe de uso e as particularidades das cláusulas match
e case
.
Como usar uma instrução match / case no Python 3.10 - Em inglês: How to Use a match case Statement in Python 3.10
O Match-Case no Python 3.10 não é tão simples - Em inglês: The Match-Case In Python 3.10 Is Not That Simple
Os artigos acima estão em inglês, caso tenha dificuldade com o idioma, recomendo o uso do tradutor do navegador.
Fico à disposição em caso de dúvidas.
Abraços e bons estudos.