Dependency injection DI
In plaats van zijn afhankelijkheden zelf aan te maken, krijgt een klasse ze van buitenaf aangereikt.
Maakt code testbaar (afhankelijkheden mocken in tests), losjes gekoppeld en flexibel. Grote frameworks (Spring, Angular, ASP.NET) bouwen hun architectuur rond DI-containers.