# Dependency Injection and IoC

# Dependency Injection
How objects obtain dependent objects 


The class being injected has no responsibillity in instantiating the object being injected
Key Theme: Avoid Tight Coupling

## Types of Dependency Injection:
- By class properties - not reccommended
- By Setter
- By Constructor - most perfered way

## Inversion of Control
A technique to allow dependencies to be injected at runtime

## IoC vs DI
- DI is the composition of your classes
- IoC is the runtime enviornment of your code