[우아한테크세미나] 190620 우아한객체지향 by 우아한형제들 개발실장 조영호님

의존성 : B가 바뀌었을때 A가 바뀔 가능성이 있다

의존성이 있다해서 무조건 바뀌진 않음.

B라는 클래스의 내부 구현이 변경 되더라도 A 클래스에 영향 안 줄 수 있다.

(설계를 잘하면)

의존성 : 변경에 의해서 영향을 받을 수 있는 가능성

  1. 클래스 사이에 의존성

  2. 패키지 사이의 의존성

  3. 클래스 의존성

    1. 연관관계 (A에서 B로 이동할 수 있다) → 영구적으로 갈 수 있는 관계
    2. 의존관계 (파라미터, 리턴타입에서 해당 타입이 나오거나 메서드 안에서 그 객체 생성 시 dependency라 보면 된다.) → 협력하는 시점에 관계 맺고 헤어지는 관계
    3. 상속 관계 : 부모가 바뀌면 A가 바뀐다. → 구현이 바뀌더라도 영향 받음
    4. 실체화 관계 : 인터페이스를 implement하는 관계 → 인터페이스 operation 시그니처 바뀌었을때만 영향 받음
  4. 패키지 의존성

좋은 의존성을 관리하기 위한 규칙

  1. 양방향 의존성을 피하라.

Untitled