De que forma o princípio de inversão de controlo contribui para a organização da interação entre componentes num sistema?
sobes.tech IA
Resposta da IA
O princípio de inversão de controlo (Inversion of Control, IoC) promove a organização da interação entre os componentes do sistema, transferindo a responsabilidade de criar e ligar objetos para um contêiner ou framework externo. Isto permite que os componentes não criem dependências por si próprios, mas as obtenham de fora.
Como resultado, os componentes tornam-se fracamente acoplados, mais fáceis de testar e mais flexíveis. Por exemplo, em vez de uma classe criar ela mesma uma instância de dependência, ela a recebe através do construtor ou de um setter, e o contêiner IoC gere o ciclo de vida e as ligações.
Exemplo com injeção de dependências (Dependency Injection):
public class Service {
private final Repository repository;
public Service(Repository repository) {
this.repository = repository;
}
public void doWork() {
repository.save();
}
}
Aqui, Service não cria o Repository por si só, mas o recebe de fora, implementando o princípio de inversão de controlo.