의존
- A가 B에 의존한다 = B가 변하면 A에 영향을 미친다 = A → B
DI(Dependent Injection)
- 의존성 주입을 하지 않으면 상, 하위 클래스가 의존하는 관계를 갖게 됨
- DIP를 적용하게 되면 interface 등을 추가해서 상, 하위 클래스의 직접적인 의존성을 끊어줌
- 인터페이스를 이용한 하위 모듈 추가가 용이해짐
DIP(Dependent Injection Principle)
- 의존관계역전법칙
- 상위모듈이 하위모듈에 의존해서는 안되고, 두 모듈이 전부 추상화에 의존해야 함
- 추상화는 세부사항에 의존해서는 안되고, 세부사항이 추상화에 따라 달라져야 함
의존성 주입의 장단점
- 장점
- 모듈을 쉽게 교체할 수 있음
- 단위 테스트, 마이그레이션이 쉬워짐
- 의존성 방향이 일관되어 코드 추론이 쉬워짐
- 단점
- 클래스 수가 늘어나 복잡성이 증가됨
- 종속성 주입은 컴파일 시가 아니고 런타임 때 일어나기 떄문에 컴파일시 오류를 찾기 어려움
'Study > computer science' 카테고리의 다른 글
행동패턴 - 이터레이터/전략/옵저버, 구조패턴 - 프록시 (0) | 2024.01.07 |
---|---|
생성패턴 - 싱글톤패턴/팩토리패턴 (1) | 2024.01.07 |
디자인패턴/라이브러리/프레임워크 (0) | 2024.01.07 |