Inversão de controle
Princípio em que o fluxo de controle é invertido: em vez de o seu código chamar uma biblioteca, o framework chama o seu código. É o "princípio de Hollywood": não nos ligue, nós ligamos para você.
Você implementa callbacks, tratadores de eventos e interfaces; quem decide quando eles rodam é o framework. A injeção de dependência é uma forma específica disso (o objeto recebe suas dependências prontas em vez de criá-las por conta própria).
Aparece no React (os componentes são renderizados pelo React), no Spring (beans gerenciados pelo contêiner), no pytest (fixtures injetadas) e nos middlewares do Express. A contrapartida: mais facilidade para testar e menos acoplamento, mas fica mais difícil entender o fluxo de execução só lendo o código.