O método reajusteSalarioDoFuncionario utiliza esse padrão? Pelo que entendi ele meio que faz uma "corrente" com todas as validações e me parece com esse design. Alguém consegue confirmar, pfv?
OBS: Estou aprendendo sobre padrão de projetos hehe.
O método reajusteSalarioDoFuncionario utiliza esse padrão? Pelo que entendi ele meio que faz uma "corrente" com todas as validações e me parece com esse design. Alguém consegue confirmar, pfv?
OBS: Estou aprendendo sobre padrão de projetos hehe.
Olá, Douglas!
Pelo que entendi da sua pergunta, você está se perguntando se o método reajusteSalarioDoFuncionario
da classe ReajusteService
está utilizando o padrão de projeto Chain of Responsibility, correto?
O padrão Chain of Responsibility é um padrão de projeto comportamental que permite passar solicitações ao longo de uma cadeia de handlers. Ao receber uma solicitação, cada handler decide se processa a solicitação ou a passa adiante ao longo da cadeia.
No caso do método reajusteSalarioDoFuncionario
, ele não está exatamente utilizando o padrão Chain of Responsibility. O que acontece é que ele está chamando uma série de validações (que são implementações da interface ValidacaoReajuste
) antes de realizar o reajuste do salário. Isso pode lembrar o Chain of Responsibility, mas não é exatamente o mesmo.
No Chain of Responsibility, cada handler decide se deve processar a solicitação ou passá-la adiante. No caso do reajusteSalarioDoFuncionario
, todas as validações são sempre executadas, e se qualquer uma delas falhar, uma exceção é lançada.
Por exemplo, se tivéssemos um Chain of Responsibility, poderíamos ter uma situação onde a primeira validação passa e decide não passar a solicitação adiante, terminando a cadeia. No caso do reajusteSalarioDoFuncionario
, mesmo que a primeira validação passe, as outras validações ainda serão executadas.
Então, embora haja alguma semelhança na ideia de ter uma série de validações, não é exatamente um Chain of Responsibility.
Espero ter ajudado e bons estudos!