Leia o caso a seguir. Durante a refatoração de um sistema d...

Próximas questões
Com base no mesmo assunto
Q3034901 Engenharia de Software
Leia o caso a seguir.

Durante a refatoração de um sistema de software para melhorar a manutenção e a extensibilidade do código, um desenvolvedor de software está considerando a aplicação de princípios de programação orientada a objetos.
Elaborado pelo(a) autor(a).

Qual das seguintes alterações é mais apropriada para promover o encapsulamento e a reutilização desse código?
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

O tema central da questão é a programação orientada a objetos, com foco em dois conceitos importantes: encapsulamento e reutilização de código. Esses conceitos são fundamentais para melhorar a manutenção e a extensibilidade de sistemas de software. Para resolver questões como esta, é necessário compreender como a programação orientada a objetos ajuda a estruturar o código de forma eficiente e clara.

Alternativa Correta: A

A - Converter funções globais em métodos privados dentro de classes específicas.

A alternativa A é a correta porque transformar funções globais em métodos privados dentro de classes específicas promove o encapsulamento. O encapsulamento esconde os detalhes de implementação e expõe apenas o que é necessário, melhorando a manutenção e segurança do código. Isso também facilita a reutilização das funções, pois agora elas fazem parte da estrutura das classes e podem ser usadas conforme necessário dentro do contexto da classe.

Análise das Alternativas Incorretas:

B - Substituir todas as variáveis locais por atributos públicos nas classes.

Esta alternativa está incorreta porque transformar variáveis locais em atributos públicos compromete o princípio do encapsulamento. Tornar atributos públicos expõe internamente o estado da classe, o que vai contra a ideia de esconder a implementação. Isso pode levar a uma maior dificuldade de manutenção e possíveis erros.

C - Criar classes adicionais para cada método, garantindo a separação de responsabilidades.

Embora a separação de responsabilidades seja um conceito importante, criar classes individuais para cada método não é uma prática eficiente. Isso pode resultar em um número excessivo de classes, tornando o sistema complexo e difícil de gerenciar, ao invés de melhorar a reutilização ou encapsulamento.

D - Utilizar herança múltipla para compartilhar atributos comuns entre diferentes classes.

A herança múltipla, por sua vez, pode introduzir complexidade desnecessária e problemas como a ambiguidade de métodos e atributos (o problema do "diamante" em herança). Além disso, a herança múltipla não é suportada diretamente por algumas linguagens orientadas a objetos, como Java, e não está diretamente relacionada ao conceito de encapsulamento ou reutilização de código.

Gostou do comentário? Deixe sua avaliação aqui embaixo!

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo