A design pattern in which objects receive their dependencies from external sources rather than creating them internally, promoting loose coupling and easier testing.