Principles

IoC or Invesion of controll In few words, don't instantiate your dependencies in the places where you need them. The advices you to use a IoC container The container has the responsibility of giving you the instances that you need.