SOLID강의 4

마음이편해·2022년 12월 12일

의존역전의 법칙


  • 의존성 역전 원리(DIP)는 소스 코드 종속성이 구체화가 아닌 추상화만을 참조하는 시스템이 가장 유연하다는 것을 알려준다.
  • a. 상위 레벨 모듈은 하위 레벨 모듈에 의존해서는 안된다. 둘 다 추상화에 의존해야 한다.
    b. 추상화는 세부사항에 의존해서는 안 된다. 세부 사항은 추상화에 따라 달라져야 한다.

  • Circle클래스에서 DrawCircle이란 클래스에 의존적인 구조
  • DrawCircle이란 추상화된 인터페이스를 만들고 DrawCircle이 구현하게 했지만 상위레벨에서 하위레벨의 모듈에 의존적이게 된다. 의존역전이 발생
  • 상위레벨에서 DrawCircle 인터페이스를 만들고 하위레벨에서 이를 구현하고 의존적이게 만드는게 이상적인 구조


  • 예제로 MVC패턴에서 Controller와 View단에서 Model에 직접적으로 의존해야하는 것이 아닌 추상화된 인터페이스를 통해 이를 구현하는 식으로 의존역전 및 구체화된 클래스에 종속적이지 않도록 하는것이 이상적


구체적인 유형 대신 추상화(즉, 추상적인 클래스 또는 개념)에 의존하도록 지향하라.

0개의 댓글