포스트

2023-04-21-OOP-DIP

의존 관계 역전 원칙 (DIP - Dependency Inversion Principle)

  • 프로그램은 추상화에 의존해야지 구체화에 의존하면 안된다.
  • 의존성 주입은 이 원칙을 따르는 방법 중 하나다

의존 관계의 문제?

  • 수정에 취약한 코드가 된다.

추상화란?

  • 유연성을 확보하기 위해 구체적인 것은 제거한다는 의미이다.
  • 어떤 양상, 세부사항, 구조를 좀 더 명확하게 이해하기 위해 특정 절차나 물체를 의도적으로 생략하거나 감춤으로써 복잡도를 극복하는 방법이다.
  • 프로그램에서 필요한 공통점을 추출하고, 불필요한 공통점을 제거하는 과정이다.

구체화란?

  • 어떻게 할 것인지를 실제적으로 표현한 것이다.

DIP를 따를 때의 이점

  • 수정에 취약하지 않는 코드가 된다.
  • 메소드를 추가하더라도 클라이언트의 코드는 수정이 필요 없다
  • 기존의 코드를 변경하지 않으면서 기능을 추가할 수 있다

주의점

  • 변하는 부분과 변하지 않는 부분을 분리하고, 변하는 부분을 추상화 해야한다.

출처 : 위키백과, 메타버스 강사님 강의, 객체지향의 사실과 오해

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.