본문 바로가기
프로그래밍

OCP, 추이 종속성(transitive dependency)

by Mr-후 2020. 11. 3.
반응형

추이 종속성이란 클래스 A가 클래스 B를 의존하고, 다시 클래스 B가 클래스 C에 의존한다면, 클래스 A는 클래스 C에 의존하게 된다. 이를 추이 종속성이라고 부르며 크래스 이외의 소프트웨어의 모든 엔티티(패키지, 컴포넌트 등)에도 동일하게 적용된다. 

 

추이 종속성을 가지게 되면, 소프트웨어 엔티티는 '자신이 직접 사용하지 않는 요소에는 절대로 의존해서는 안된다' 는 소프트웨어 원칙을 위반하게 된다. 

만약 클래스 의존성이 순환적(cyclic)이라면, 모든 클래스가 서로 의존하게 되는 문제가 있다. 

 

OCP는 시스템의 아키텍처를 떠받치는 원동력 중 하나다.
OCP의 목표는 시스템을 확장하기 쉬운 동시에 변경으로 인해 시스템이 너무 많은 영향을 받지 않도록 하는 데 있다.
이러한 목표를 달성하려면

시스템을 컴포넌트 단위로 분리하고
저수준 컴포넌트에서 발생한 변경으로부터 고수준 컴포너트를 보호할 수 있는 형태의 의존성 계층구조가 만들어지도록 해야 한다. 

- 클린 아키텍처 OCP중-

반응형

'프로그래밍' 카테고리의 다른 글

함수를 어떻게 짜죠? -클린코드 중-  (0) 2022.02.04
퍼사드 패턴(Facade Pattern)  (0) 2020.11.03
프로그래밍을 학습하는 방법  (0) 2020.10.16
주석문  (0) 2020.10.14
클래스의 구분.  (0) 2020.07.09