Um Engenheiro da Computação atua como um consultor sênior e...
Esse Engenheiro está revisando um módulo que viola o princípio de Responsabilidade Única (SRP) do SOLID. O módulo ManipuladorDeVotos é responsável por persistir o voto e por gerar o relatório estatístico do voto.
Assinale a afirmativa correta em relação ao efeito arquitetural primário da violação do SRP nesse cenário.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Gabarito: C
Fundamento decisivo: O módulo ManipuladorDeVotos acumula persistência de voto e geração de relatório estatístico, ou seja, reúne responsabilidades distintas no mesmo componente.
- Se o módulo concentra responsabilidades distintas, identifique múltiplos motivos de mudança: isso sinaliza violação do SRP.
- Em questões comparativas, diferencie coesão e acoplamento: violar SRP compromete a coesão e tende a ampliar dependências.
- Não conclua sobre complexidade ciclomática sem informação sobre fluxo de controle; responsabilidade e métrica de decisão são planos diferentes.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
GABARITO C.
o princípio 'S' prega que cada módulo deve possuir apenas uma responsabilidade (entende-se como método).
veja que o modulo ManipuladorDeVotos tem duas responsabilidades: persistir voto e gerar o relatório estatístico dos votos.
isso cria dois motivos distintos para alterar o mesmo módulo:
-mudanças na regra de persistência (ORM, banco, transação, etc.)
ou
-mudanças na lógica de cálculo ou formatação do relatório.
quando dois aspectos distintos são colocados no mesmo módulo, eles ficam obrigatoriamente acoplados entre si: qualquer mudança em um implica tocar o mesmo artefato, o que reduz a separação de preocupações e aumenta o acoplamento.
Alto Acoplamento: Como a classe faz duas coisas totalmente diferentes, ela precisa "importar" as bibliotecas de banco de dados E as bibliotecas de geração de gráficos/PDF. Ela fica dependente (acoplada) a múltiplos pacotes externos. Pior ainda: o módulo que quer apenas salvar um voto acaba sendo obrigado a "carregar" o código de gerar relatório junto com ele.
Gabarito: C
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo