Code Design
Courses and Workshops on Effective Code Design

Managing Dependencies with Dependency Injection

Florin Coroș

Florin Coroș


By participating to this training you will get a deep understanding of Dependency Injection and Service Locator techniques, which are key in managing the dependencies between the modules and classes in which we write our code. The dependencies among code structures play an important role in maintaining and changing the code base. Therefore, the ability of creating these dependencies in an ordered fashion and in a loosely coupled way can make a significant impact on the overall development cost of a software project.

The course begins from explaining the main principles around constructing objects; it continues by presenting decisional patterns of choosing the most appropriate construction technique depending on the context; and it ends with recipes of starting projects with a solid foundation for this, but also for adding it at a later stage of the project.

Another perspective the course brings is on the benefits of the Dependency Injection and Service Locator techniques on achieving a testable code as well as on isolating the code from the changes of the external APIs or systems.


You should invest in mastering Dependency Injection and Dependencies Management because:

  • code that uses dependency injection properly has reduced costs for change and extensibility
  • projects in which the dependencies are manageable have lower development costs on the long term
  • code that uses dependency injection has a higher level of testability
  • code that uses dependency injection can be isolated from changes of the external code it calls

Even if in our days, Dependency Injection and Service Locator are popular, having a deep understanding of them and recipes to follow extracted from real live projects, can make a big difference in applying them in a beneficiary way.

Target Audience

Any software developer would benefit greatly from this training.


Object Oriented Programming basics (inheritance; encapsulation; polymorphism; interfaces; abstract classes; virtual methods; overriding; overloading).

Format and Agenda

The training is structured in more sections. The first sections cover the problems around Dependencies Management, and the later ones show how they are addressed by implementing Dependency Injection and Service Locator techniques.

The sections are:

  • Define Dependencies
  • The Dependency Rule
  • Acyclic Dependencies Principle
  • Build Against Unwanted Dependencies
  • Separating Construction from Use
  • Dependency Injection
  • Service Locator
  • Using Dependency Injection and Service Locator

The recommended format for delivering the course is one day. This assures a balanced pace between explaining the principles, showing examples and exercising the techniques.


Please contact me for requesting an offer tailored to your needs.


The course was very effective and well done.
The trainer explained theoretical aspects and after that he presented some examples and exercises (hands-on lab).
Excellent trainer.

Sergiu Jecan

You've successfully subscribed to Code Design
Great! Next, complete checkout to get full access to all premium content.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.
Success! Your billing info is updated.
Error! Billing info update failed.