Uma equipe de desenvolvimento está projetando um sistema de folha de pagamento para uma secretaria estadual. O sistema deve calcular o salário líquido de diferentes categorias de servidores: efetivos, comissionados e temporários. Cada categoria possui regras específicas de descontos e benefícios. A equipe decidiu aplicar o padrão de projeto Strategy para encapsular os algoritmos de cálculo, permitindo que sejam intercambiáveis. Além disso, o sistema será dividido em camadas: apresentação, negócio e persistência. A camada de negócio conterá as classes de domínio e os serviços que orquestram as regras. A camada de persistência será responsável pelo acesso a um banco de dados relacional. A aplicação será disponibilizada como um serviço web RESTful, consumido por um front-end Angular.
Considerando os conceitos de orientação a objetos, arquitetura em camadas e aplicações cliente-servidor, analise as afirmativas a seguir:
I. A aplicação do padrão Strategy permite que a classe CalculadoraFolha delegue o cálculo do salário líquido a objetos que implementam a interface CalculoSalario, promovendo baixo acoplamento e alta coesão, mas exige que a camada de negócio conheça todas as implementações concretas para instanciá-las, o que pode ser resolvido com uma fábrica ou injeção de dependência.
II. Na arquitetura em camadas, a camada de apresentação pode acessar diretamente a camada de persistência para otimizar o desempenho, desde que utilize objetos de transferência de dados (DTOs) para evitar expor entidades de domínio.
III. Em uma aplicação cliente-servidor baseada em REST, o servidor é stateless, ou seja, não mantém o estado da sessão do cliente entre requisições, o que implica que cada requisição deve conter todas as informações necessárias para seu processamento, como tokens de autenticação.
IV. O polimorfismo dinâmico, presente na orientação a objetos, é essencial para o funcionamento do padrão Strategy, pois permite que a CalculadoraFolha invoque o método calcular() sem conhecer a classe concreta do objeto, mas a ligação tardia (late binding) só ocorre em linguagens que suportam herança simples.
Está correto o que se afirma APENAS em:
Selecione uma alternativa pra criar sua conta e salvar o progresso.