Dependency Injection (aka Inversion of Control)

Java

Ruby

Python