Leia o caso a seguir. Durante a refatoração de um sistema d...
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?
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