Dependency Injection
Constructor Injection
Setter Injection
Container Injection