Em uma aplicação corporativa desenvolvida em Java e C#, a e...

Próximas questões
Com base no mesmo assunto
Q4181861 Programação
Em uma aplicação corporativa desenvolvida em Java e C#, a equipe de arquitetura revisou um módulo responsável por calcular diferentes políticas de cobrança. A versão inicial concentrava regras condicionais em uma única classe, com testes frequentes sobre o tipo concreto de cliente, produto e contrato. A proposta de refatoração envolveu uso de interfaces, classes especializadas, injeção de dependências e substituição de estruturas condicionais extensas por chamadas polimórficas. Acerca do tema, analise as sentenças a seguir:

I- O polimorfismo permite que objetos de classes diferentes sejam tratados por uma mesma abstração, de modo que a seleção do comportamento concreto possa ocorrer em tempo de execução, desde que os tipos envolvidos respeitem o contrato definido por uma interface, classe abstrata ou hierarquia compatível.

II- A herança deve ser utilizada sempre que duas classes compartilham atributos com nomes semelhantes, pois a reutilização estrutural é critério suficiente para estabelecer relação “é-um”, mesmo que os comportamentos esperados das subclasses violem substitutibilidade em relação à superclasse.

III- A redução de condicionais baseadas em tipo concreto pode aumentar a extensibilidade do módulo quando novas políticas de cobrança são adicionadas por meio de novas implementações de uma abstração, sem exigir alteração direta da lógica cliente que consome o contrato comum.

IV- O encapsulamento consiste em tornar todos os atributos privados e todos os métodos públicos, garantindo baixo acoplamento automaticamente, independentemente da exposição de detalhes internos por métodos de acesso e da estabilidade da interface pública da classe.

Analisadas as sentenças, estão CORRETAS apenas:
Alternativas