Inversão de Controle (IoC)
Gabarito: letra D. A Inversão de Controle (IoC) é um princípio no qual o controle sobre a criação e o ciclo de vida dos objetos é transferido do próprio objeto para um contêiner ou framework. A alternativa D descreve corretamente esse conceito: permite que um objeto seja utilizado por outros sem que estes conheçam sua implementação concreta, ou seja, eles dependem de abstrações.
Alternativa A — ❌ Incorreta
Descreve o princípio de substituição de Liskov ou polimorfismo, não a Inversão de Controle. Substituir um objeto por outro sem alterar o comportamento é uma característica de herança e interfaces, não específica de IoC.
Alternativa B — ❌ Incorreta
Criação de um objeto por outro é um padrão de projeto como Factory, mas não define IoC. Em IoC, a criação é delegada a um contêiner externo, não a outro objeto arbitrário.
Alternativa C — ❌ Incorreta
Refere-se a configuração externa via arquivos de propriedades, que é uma técnica de configuração, não o conceito de IoC. Embora possa estar associada, não é a definição central.
Alternativa D — ✅ Correta ⟵ GABARITO
Exatamente: a Inversão de Controle permite que objetos sejam usados por outros sem que estes precisem conhecer suas implementações concretas, pois a responsabilidade de fornecer as dependências é invertida para um contêiner. É a base para injeção de dependência.
Alternativa E — ❌ Incorreta
Como a alternativa D está correta, a opção "Nenhuma das anteriores" é falsa.
Gabarito: letra D.