Question: Strategy pattern and Dependency Injection both allow us to set / inject objects at run time. What is the difference between Strategy pattern and Dependency Injection?

Answer: 
Dude, dependency injection is a more general pattern, and it's about dependency on abstractions not concretions and it's a part of every pattern, but Strategy pattern is a solution to more specific problem

this is the definition from wikipedia:

DI:

> 
> Dependency injection (DI) in
>  object-oriented computer programming
>  is a design pattern with a core
>  principle of separating behavior from
>  dependency resolution. In other words:
>  a technique for decoupling highly
>  dependent software components.
> 
> 
> 

Strategy Pattern:

> 
> In computer programming, the strategy
>  pattern (also known as the policy
>  pattern) is a particular software
>  design pattern, whereby algorithms can
>  be selected at runtime.
> 
> 
> The strategy pattern is intended to
>  provide a means to define a family of
>  algorithms, encapsulate each one as an
>  object, and make them interchangeable.
>  The strategy pattern lets the
>  algorithms vary independently from
>  clients that use them.
> 
> 
>
If we consider SOLID principles -
We use Strategy Pattern for Open Closed Principle and Dependency Injection for Dependency Inversion Principle