디자인 패턴의 대부분이 인터페이스 구조로 이루어져 있음(70%)
그러나
생성자 내부에서 구체적인 클래스로 명시해서 객체 생성 하는 경우
public PaymentService() {
// this.exRateProvider = new SimpleExRateProvider();
this.exRateProvider = new WebApiExRateProvider();
}
이와 같이 사용하게 되면 인터페이스가 아닌 구체적인 클래스에 의존하게 되어있음
코드레벨의 의존관계
PaymentService
가 어떤 클래스의 Object를 사용하게 할 것인가가 “관계 설정”을 뜻 함
(의존하는 코드는 극히 적지만 클래스 레벨에 의존하고 있는 상황)
런타임에서는 Object
가 Object
를 의존하는 관계가 됨
오브젝트 다이어그램(런타임시 동작하는 구조를 보여줌)