Articles → .NET DESIGN PATTERN → Dependency Inversion Principle In C#

Dependency Inversion Principle In C#






What Does The Dependency Inversion Principle Say?




  1. High-level modules should not depend upon the low-level module. Both modules should depend upon the abstractions.
  2. Abstractions should not depend upon details. Details should depend upon the abstractions.





Example




public class PresentationLayer {
  public string GetMessage() {
    ApplicationLayer applicationLayer = new ApplicationLayer();
    return applicationLayer.GetWelcomeMessage();
  }
}
public class ApplicationLayer {
  public string GetWelcomeMessage() {
    return "Welcome Karan";
  }
}




Picture showing the traditional development method where high level module is dependent on low level module
Click to Enlarge



  1. Create an interface.
  2. Implement the low-level module with the interface.
  3. Call the low-level module in the high-level module using an interface


public class PresentationLayer {
  IMessage _message;
  public PresentationLayer(IMessage message) {
    this._message = message;
  }

  public string GetMessage() {
    return _message.GetWelcomeMessage();
  }
}

public interface IMessage {
  string GetWelcomeMessage();
}

public class ApplicationLayer: IMessage {
  public string GetWelcomeMessage() {
    return "Welcome Karan";
  }
}


Picture showing the Dependency Inversion principle method of implementation
Click to Enlarge


Posted By  -  Karan Gupta
 
Posted On  -  Monday, December 28, 2020

Query/Feedback


Your Email Id  
 
Subject 
 
Query/FeedbackCharacters remaining 250