[SOLID] DIP

miori·2022년 11월 6일
0

OOP

목록 보기
5/5
post-thumbnail

DIP (Dependency Inversion)

좋은 설계란 기본적으로 시스템에 새로운 요구사항이나 변경이 있을 때 가능한 한 영향 받는 부분을 최소화한 설계이다.
  • 의존 역전 원칙
  • 상위 수준의 모듈은 하위수준의 모듈에 의존 해서는 안된다.
  • 의존관계를 맺을 때는, 변하기 쉬운 것 (구체적인 것) 보다는 변하기 어려운 것 (추상적인 것) 에 의존해야한다.
  • DIP 를 통해 Decoupling 이 되어, 의존관계가 느슨해진다.

의존성 역전?

  • 절차지향적 프로그래밍에서는 상위수준의 모듈이 하위수준의 모듈에 의존하는 경향이 있지만 이를 역전시켜, 의존하지 않도록 한다.

즉, 상위수준의 모듈과 하위수준의 모듈 사이에 추상화를 껴서 서로를 의존하는 것이 아니라 추상화 된 것을 통해서 구현을 해야한다.
swift에서는 추상화 할 부분을 protocol로 선언하고, 그 protocol을 준수하는 변수를 생성해서 주입해줄 수 있다.

profile
iS를 공부하는 miori 입니다.

0개의 댓글