델리게이트 | 언리얼 엔진 5.5 문서 | Epic Developer Community

Coupling / Decoupling

Tight Coupling (강한 결합)

강한 결합은 클래스들이 서로 의존성을 가지는 경우이다.

예를 들어, 이전의 클래스 설계를 참고하자.

image.png

현재 Person은 Card를 무조건 가지고 있어야 한다. 이때 Person은 Card 클래스에 대해 의존성을 가지고 있다고 하는데,

Card를 수정하거나, Person을 변경한다면 기존에 구현한 자식 클래스드에도 전부 변경이 이루어지게 될 것이다.

이런 것을 방지하기 위해 객체 지향에서는 추상적 설계에 의존하는 느슨한 결합 원칙을 제시한다

Loose Coupling (느슨한 결합)

그렇다면 위의 설계를 어떻게 느슨한 결합으로 바꿀 수 있을까?