Esta refatoração do useCarrinhoContex, realocação do useMemo e o uso do useReducer além do propósito das melhoria do código, vai de encontro com as ideias do SOLID, certo?
Esta refatoração do useCarrinhoContex, realocação do useMemo e o uso do useReducer além do propósito das melhoria do código, vai de encontro com as ideias do SOLID, certo?
Olá Davi!
Sim, a refatoração que você está fazendo no useCarrinhoContext
, utilizando useMemo
e useReducer
, está alinhada com os princípios do SOLID, especialmente no que diz respeito à responsabilidade única e ao princípio de substituição de Liskov.
Ao utilizar o useReducer
, você está separando a lógica de atualização do estado do componente, o que melhora a clareza e a manutenção do código. Isso se alinha com o princípio de responsabilidade única, pois cada função e componente tem uma única responsabilidade bem definida. Além disso, ao definir as ações e o reducer
, você está criando um contrato claro sobre como o estado pode ser modificado, o que também está em linha com o princípio de substituição de Liskov, garantindo que as substituições de comportamento sejam previsíveis e seguras.
Por exemplo, ao criar ações como addProdutoAction
, removeProdutoAction
e updateQuantidadeAction
, você está encapsulando a lógica de manipulação do carrinho de forma que, se precisar alterar a forma como um produto é adicionado ou removido, você só precisará modificar a lógica dentro dessas funções, sem impactar o restante do código.
Espero ter ajudado e bons estudos!