SOLID é um acrônimo que representa um conjunto de cinco princípios que facilitam o processo de desenvolvimento e manutenção de software. Os princípios são fundamentais na programação orientada a objetos e podem ser aplicados em qualquer linguagem de programação que adotem este paradigma. Com relação aos princípios, analise os itens a seguir I. O princípio da responsabilidade única (a letra S da sigla) enuncia que cada classe deve ter um, e somente um, motivo para mudar. II. O princípio aberto-fechado (a letra O da sigla), define que entidades de software (por exemplo, classes e métodos) devem estar abertas para extensão, mas fechadas para modificação. III. O princípio de permutação de Igorov (a letra I da sigla) tem suas origens em bases formais, mas estabelece que as Classes derivadas (classes-filhas) devem ser capazes de substituir suas classes-base (classes-mães). Está correto o que se afirma em
- A)I, apenas.
Errada, porque o item II também está correto.
- B)III, apenas.
Errada, porque o item III está incorreto e os itens I e II estão corretos.
- C)I e II, apenas.
Certa, pois os itens I e II reproduzem corretamente os princípios de responsabilidade única e aberto-fechado.
- D)II e III, apenas.
Errada, porque o item III não está correto e o item I também é verdadeiro.
- E)I e III, apenas.
Errada, porque o item III está errado, apesar de o item I estar correto.
Gabarito: C
SOLID é um conjunto de 5 princípios da orientação a objetos que ajuda a deixar o código mais fácil de entender, testar e manter. Aqui, a banca trabalhou basicamente com os dois primeiros: o S e o O. O princípio da responsabilidade única diz que uma classe deve ter apenas um motivo para mudar, ou seja, ela não deve acumular funções demais. Já o princípio aberto-fechado afirma que o software deve estar aberto para extensão e fechado para modificação, evitando que você precise sair mexendo em código já estável toda vez que surgir uma nova regra. Por isso, o item I está correto e o item II também. Os dois enunciados trazem a formulação clássica desses princípios, amplamente aceita na doutrina de programação orientada a objetos. Em concursos, essa redação costuma aparecer quase literal, então vale decorar a ideia central: uma responsabilidade por classe e evolução por extensão, não por remendo. O item III está errado porque o nome correto é princípio de substituição de Liskov, e não de "Igorov". A ideia dele é que uma classe derivada deve poder substituir a classe base sem quebrar o comportamento esperado do sistema. Como a afirmação troca o nome do princípio por um termo inexistente, a assertiva fica incorreta, mesmo que a descrição do conceito esteja na direção certa. Assim, o gabarito é C, pois apenas os itens I e II estão corretos.