A design principle where the control of object creation and dependency management is transferred from the application code to an external framework or container. Instead of objects creating their own dependencies, they receive them from an external source.
The principle was formalized by Martin Fowler in the early 2000s, though the concept existed in earlier frameworks. 'Inversion' refers to reversing the traditional control flow where objects managed their own dependencies, inspired by the Hollywood Principle: 'Don't call us, we'll call you.'
IoC is like the difference between cooking at home versus ordering from a restaurant - instead of you going out to buy ingredients (dependencies), the restaurant (framework) brings you the finished meal with all ingredients already prepared! This means your code focuses on business logic while the framework handles the complex work of managing object lifecycles and dependencies.
Complete word intelligence in one call. Free tier — 50 lookups/day.