Junior — Middle
Explique o princípio de inversão de controlo com um exemplo de sistema de chamada de táxi.
sobes.tech IA
Resposta da IA
Inversão de controlo (IoC) é um princípio em que a gestão da criação e ligação de objetos é transferida para um contêiner ou framework externo, em vez de ser implementada diretamente no código.
Exemplo num sistema de chamada de táxi:
- Em vez de a classe
TaxiServicecriar ela própria objetosDriverouCar, essas dependências são passadas a ela de fora (por exemplo, através do construtor). - O contêiner IoC é responsável por criar e ligar todos os objetos.
public class TaxiService {
private Driver driver;
// Dependência passada de fora
public TaxiService(Driver driver) {
this.driver = driver;
}
public void callTaxi() {
driver.driveToCustomer();
}
}
Aqui, TaxiService não cria Driver por si só, mas recebe-o de fora. Isto facilita testes, extensões e manutenção do código, pois as dependências podem ser alteradas sem modificar a própria classe.