Filtrar


Questões por página:
O Analista de Sistemas está revisando um código que trata de licitações. Existe uma classe base Licitacao com um método iniciar(). Uma subclasse LicitacaoPresencial sobrescreve o método iniciar() com sucesso. No entanto, outra subclasse, LicitacaoEletronica, sobrescreve o método iniciar() mas, em certas condições, lança uma exceção de Processo Inválido que não está presente na assinatura do método da classe base Licitacao.
O seguinte princípio SOLID está sendo violado pela classe LicitacaoEletronica, quebrando a expectativa de que um objeto da subclasse possa ser substituído por um objeto da superclasse sem alterar a corretude do programa:
Em um sistema de folha de pagamento da Assembleia, o Analista de Sistemas está modelando a hierarquia de funcionários. A classe base Pessoa contém atributos comuns como nome e cpf. A classe Funcionario herda de Pessoa e possui o método calcularRemuneracaoMensal(). No entanto, a forma de cálculo varia radicalmente entre subtipos como Efetivo e Comissionado, e a classe Funcionario por si só nunca deve ser instanciada, servindo apenas como um contrato para as classes filhas.
O conceito de Orientação a Objetos aplicado à classe Funcionario para impedir sua instanciação direta, ao mesmo tempo em que impõe a obrigatoriedade de implementação do método calcularRemuneracaoMensal() nas suas subclasses é o(a)
Durante a modelagem de um sistema de controle acadêmico para uma instituição de ensino, um professor orientou seus alunos a utilizarem o modelo entidade-relacionamento estendido (EER) para representar conceitos como generalização, especialização e herança entre entidades. Ao converter esse modelo para um diagrama de classes UML, é necessário identificar corretamente a notação usada para representar relações hierárquicas de herança, em que subclasses herdam atributos e comportamentos da superclasse. Nesse contexto, a representação correta do relacionamento de herança é dada por:
Considere o exemplo abaixo, relacionado ao sistema de tramitação processual em um tribunal:
interface ServidorJudiciario (
void analisarProcesso();
void realizarAudiencia();
)
class AnalistaTI implements ServidorJudiciario ( )
Segundo o Princípio da Segregação de Interface (ISP), pertencente ao conjunto de princípios SOLID, esse código apresenta um problema de design, já que a classe AnalistaTI é obrigada a implementar o método realizarAudiencia(), mesmo que esse comportamento não se aplique a sua função, que é técnica e não jurisdicional. Para corrigir essa violação ao ISP, a abordagem mais adequada é
Em uma revisão de código, o Analista de Tecnologia da Informação orienta a equipe a seguir práticas de Clean Code e princípios SOLID. Um dos objetivos é evitar que uma única classe assuma múltiplas responsabilidades no sistema. É CORRETO afirmar que o princípio que está sendo aplicado, é o: