1.
상위 모듈은 하위 모듈에 의존해서는 안된다.
2.
상위 모듈, 하위 모듈 모두 추상화에 의존해야 한다.
아래의 그림은 모두 상위모듈은 하위모듈에 의존해서는 안된다는 조건을 만족하지 못한다.
인터페이스 소유권의 역전이 필요하다!
Separated Interface 패턴
참고 : 인터페이스는 같은 패키지에 있는것이 아니라 그 인터페이스를 사용하는 패키지 안에 있는 것이 더 자연스러운 경우가 많다
ex) ExRateProvider 인터페이스는 ExRate 패키지가 아니라 그것을 사용하는 Payment 패키지에 있는 것이 더 적합하다.
•
인터페이스 소유의 역전을 적용한 모습