We often hear the terms Inversion of Control or Dependency Injection used interchangeably, which is normal considering they refer to the same thing. Inversion of Control is a programming style where a framework or runtime controls the program flow. It was first brought into discussion in 1988 in Designing Reusable Classes.
Later, Inversion of control over Dependencies became a standalone term, named – Dependency Injection, and it refers to dependency management as a subset of Inversion of Control. Read in full