페어링을 결정하는 키와 종속성 – DevNote

의존 : 한 객체가 다른 객체의 영향을 받는 관계

이 텍스트에서 의존더 깊이 파고들다 커플링 정도내려간다는 것이 무엇을 의미하는지 설명하시오.

1. 의존한다는 것의 의미

개체가 다른 개체에 의존한다는 것은 자신이 아닌 다른 개체의 구성원에 액세스하여 사용한다는 의미입니다.

해당 객체가 다른 객체(필드 또는 속성)를 참조하는 경우 메소드 내의 로컬 범위이더라도 해당 객체는 해당 객체에 종속되어 있다고 말할 수 있습니다.

그리고 이러한 종속성이 증가한다는 것은 특정 객체에 의존하게 된다는 것, 즉 융통성 없는 설계가 된다는 것을 의미합니다.

2. 중독을 완전히 피할 수 있습니까?

개발 중인 개체 간의 종속성을 완전히 피할 수는 없습니다.

객체 지향 설계는 본질적으로 객체 간 상호 작용에 관한 것이며 모든 기능을 하나의 객체에 넣는 것은 객체 지향 설계의 단일 책임 원칙을 위반합니다.

3. 결합도 감소의 진정한 의미

객체 지향 설계에서 종속성이 궁극적으로 불가피할 때 결합을 줄인다는 것은 무엇을 의미합니까?

이것은 우리가 가능한 한 의존적이어야 한다는 것을 의미합니까? 사실, 그것은 틀렸습니다.

종속성을 줄이는 것은 단일 개체 내에서 모든 작업을 수행한다는 아이디어와 밀접한 관련이 있으며 이는 옳지 않습니다.

올바른 결합을 줄이는 방법은 종속성을 줄이는 것이 아닙니다. 쉽게 변하지 않는 것의존성에 대해~을 의미하다

여기서 변경되지 않는 것은 다양한 해석이 가능하지만 구문적으로는 인터페이스 또는 추상 클래스를 의미합니다.

인터페이스 또는 추상 클래스는 구현과 별개이므로 구현에 의존하더라도 구현에 의존하지 않습니다.

구현을 변경하려는 경우 해당 인터페이스 또는 추상 클래스 변수에 다른 하위 클래스를 할당할 수 있습니다.

4. 히치를 내리는 순간

구조를 설계할 때 모든 개체에 대해 인터페이스를 만들 필요는 없습니다.

자주 변경되는 요소만 추상화하면 됩니다.

이때 수시로 바뀌는 다양한 요소들이 있는데 그 중 가장 대표적인 것이 방향성이다.

SceneLoader를 생성할 때 장면 전환은 Fade InOut 또는 Loading Bar일 수 있으며 서로 다를 수 있습니다.

이러한 렌더링은 SceneLoader와 독립적이어야 하며 SceneLoader는 방향에 관계없이 잘 실행되어야 합니다.

이는 파이프의 내용을 추상화하고 SceneLoader를 제어 구현 클래스에 직접 의존하는 대신 추상화된 객체에 간접적으로 의존하게 하여 해결할 수 있습니다.

이제 외부에서 적용할 방향을 결정하기 위해 구현 클래스를 인수로 전달하기만 하면 됩니다.

이와 같은 종속성을 완전히 피할 수는 없지만 쉽게 변경되지 않는 것(인터페이스 또는 추상 클래스)에 의존하여 결합을 줄이는 것이 좋습니다. 자주 바뀌는 요소만 추상화하고 의존함으로써 유연한 디자인을 추구할 수 있습니다.