Sobes.tech
Junior — Middle

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.