Dependency Injection PRO

Dependency Injection is a fancy word for a very simple design pattern that decouples highly dependent components.

The traditional approach for coupling the objects with each other was to hard code the dependency.

public interface IEngine
{
 ...
}

public class DieselEngine implements IEngine
{
 ...
}

public interface ICar
{
 ...
}

public class Taxi implements ICar
{
  private Engine engine;
  public Taxi()
  {
   engine = new DieselEngine();
   ...
  }
}

Writing the same code implementing the Dependency Injection pattern might be the following.

public interface IEngine
{
 ...
}

public class DieselEngine implements IEngine
{
 ...
}

public interface ICar
{
 ...
}

public class Taxi implements ICar
{
 private IEngine engine;
 public Taxi()
 {
  ...
 }
 public void setEngine(IEngine ob)
 {
  engine = ob;
 }
}

Dependency Injection is a specific form of Inversion of Control. The process of obtaining the needed dependency is inverted. Instead of letting the code within the Taxi class to select which is the exact IEngine object it will be connected with, that decision is taken by other parts of our program.

Share:

The Visitor Design Pattern

The Visitor Design Pattern

The visitor design pattern allows us to add operations to objects that already exist without modifying their classes and without extending them.

What are Anti Patterns?

Anti Patterns

Unlike design patterns, anti patterns just seem to be a solution. However, they are not a solution and they cause additional costs.

Virtual Threads in Java Professional Seminar

Virtual Threads in Java

The use of virtual threads can assist us with improving the performance of our code. Learn how to use virtual threads effectively.

NoSQL Databases Courses, Seminars, Consulting, and Development

MongoDB Design Patterns Meetup

The use of MongoDB involves with various cases in which we can overcome performance issues by implementing specific design patterns.

The Beauty of Code

Coding is Art! Developing Code That Works is Simple. Develop Code with Style is a Challenge!

Skip to content Update cookies preferences