Computer Science/Programming

의존성 (Dependency)

by Donghwan 2021. 3. 29.

의존성에는 크게 Class 사이 의존성과 Package 사이 의존성으로 나눌 수 있다.

Class 사이 의존성

1. 연관관계 (Assosication)

아래와 같이 A 클래스가 B라는 클래스를 객체 참조하는 경우를 말한다.

연관관계는 A 클래스에서 B 클래스로 갈 수 있는 영구적인 경로가 있다고 볼 수 있다.

class A {
    private val b:B = B()
}

2. 의존관계 (Dependency)

A클래스의 파라미터나 리턴타입에 B 클래스 타입이 나오거나, 메소드에서 B 클래스 타입의 인스턴스를 생성하는 경우이다. 의존관계는 협력하는 B 클래스와 일시적인 관계를 맺는 경우이다.

class A {
    fun b(): B {
        return B()
    }
}

3. 상속관계 (Inharitance)

B 클래스의 구현을 A가 상속 받는 관계이다.

B가 변경될 경우 A의 내용도 바뀐다.

class A : B { }

4. 실체화관계 (Realization)

인터페이스를 implement하는 관계이다.

상속관계와 실체화관계의 차이는 상속은 상속받은 클래스의 내용이 영향을 받을 수 있는 반면, 실체화 관계는 인터페이스의 오퍼레이션 시그니처가 바뀌었을 경우에만 영향을 받는다.

class A : B { }
728x90
반응형

댓글